programowanie2

 0    20 Datenblatt    kacperkamin
mp3 downloaden Drucken spielen überprüfen
 
Frage język polski Antworten język polski
Python proces wykonywania
Lernen beginnen
1) Analiza pod względem błędów, tłumaczenie na bajtkod 2) Maszyna wirtualna Python, pętla prog: 1) wczyt instr bajtkod, wykonuje instr w C, zarzadza stosem
Bajtkod
Lernen beginnen
Jest to zestaw instrukcji dla Maszyny Wirtualnej, a nie dla fizycznego procesora (CPU). Nazwa pochodzi stąd, że każda instrukcja (opcode) zajmowała tradycyjnie jeden bajt (choć w nowszych wersjach Pythona się to zmienia)
Interpreter W kontekście Pythona,
Lernen beginnen
zawiera w sobie zarówno kompilator do bajtkodu, jak i Maszynę Wirtualną (PVM). Jego zadaniem jest emulacja komputera – udaje procesor, który rozumie język bajtkodu Pythona.
threading
Lernen beginnen
udostępnia interfejs wysokopoziomowy do pracy z wątkami. Kluczowa cecha implementacyjna: Wątki w Pythonie są natywnymi wątkami systemu operacyjnego
GIL (Global Interpreter Lock)
Lernen beginnen
mutex (blokada wzajemnego wykluczania), wbudowany w rdzeń interpretera CPython, Aby jakikolwiek wątek mógł wykonać instrukcję bajtkodu Pythona lub operować na obiektach Pythona, musi najpierw uzyskać (zablokować) GIL
Lock (Blokada Wzajemnego Wykluczania)
Lernen beginnen
Ochrona Sekcji Krytycznej (zapobieganie Race Conditions).
Semaphore
Lernen beginnen
Ograniczanie współbieżności (np. max 5 połączeń do bazy danych).
Queue
Lernen beginnen
Wymiana danych między wątkami/procesami (Producer-Consumer). FIFO
Generics
Lernen beginnen
Mechanizm polimorfizmu parametrycznego umożliwiający tworzenie kodu (klas/funkcji) działającego na różnych typach danych, z zachowaniem bezpieczeństwa typów podczas analizy statycznej.
TypeVar
Lernen beginnen
Obiekt (T = TypeVar('T')) pełniący rolę "zmiennej" dla typu. Służy do wiązania typów wejściowych i wyjściowych
List[T]
Lernen beginnen
Adnotacja oznaczająca homogeniczną listę elementów typu T. W Pythonie 3.9+ zastępowana przez list[T]
Dict[K, V]
Lernen beginnen
Adnotacja słownika mapującego klucze typu K na wartości typu V. W Pythonie 3.9+ zastępowana przez dict[K, V]
id() - is
Lernen beginnen
id(<zmienna>) zwraca identyfikator obiektu, na który wskazuje <zmienna>. Pozwala to na sprawdzenie czy 2 różne zmienne wskazują na ten sam obiekt.
Płytka Kopia
Lernen beginnen
Tworzy nowy kontener, ale wypełnia go starami referencjami do dzieci
Głęboka Kopia
Lernen beginnen
Tworzy nowy kontener i rekurencyjnie nowe kopie wszystkich dzieci.
semantyka kopiowania
Lernen beginnen
Przypisanie (=), Płytka Kopia (copy. copy(), [:]), Głęboka Kopia (copy. deepcopy())
Hermetyzacja w Pythonie (Encapsulation)
Lernen beginnen
Brak słów kluczowych private/protected. Ochrona opiera się wyłącznie na konwencji (_name) oraz mechanizmie Name Mangling (__name), a nie na blokadzie dostępu
_zmienna
Lernen beginnen
Oznacza atrybut chroniony (umownie). Technicznie jest publiczny, ale sygnalizuje programiście: "nie dotykaj spoza klasy"
__zmienna
Lernen beginnen
Uruchamia mechanizm Name Mangling. Interpreter zmienia nazwę na _Klasa__zmienna w czasie kompilacji. Służy do unikania kolizji nazw przy dziedziczeniu, a nie do bezpieczeństwa danych
@property
Lernen beginnen
mplementacja Protokołu Deskryptora. Pozwala zamienić metody (getter/setter) na atrybuty dostępne przez kropkę (obj.x), zachowując kompatybilność API bez zmiany kodu klienta

Sie müssen eingeloggt sein, um einen Kommentar zu schreiben.