programowanie2

 0    20 flashcards    kacperkamin
download mp3 print play test yourself
 
Question język polski Answer język polski
Python proces wykonywania
start learning
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
start learning
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,
start learning
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
start learning
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)
start learning
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)
start learning
Ochrona Sekcji Krytycznej (zapobieganie Race Conditions).
Semaphore
start learning
Ograniczanie współbieżności (np. max 5 połączeń do bazy danych).
Queue
start learning
Wymiana danych między wątkami/procesami (Producer-Consumer). FIFO
Generics
start learning
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
start learning
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]
start learning
Adnotacja oznaczająca homogeniczną listę elementów typu T. W Pythonie 3.9+ zastępowana przez list[T]
Dict[K, V]
start learning
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
start learning
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
start learning
Tworzy nowy kontener, ale wypełnia go starami referencjami do dzieci
Głęboka Kopia
start learning
Tworzy nowy kontener i rekurencyjnie nowe kopie wszystkich dzieci.
semantyka kopiowania
start learning
Przypisanie (=), Płytka Kopia (copy. copy(), [:]), Głęboka Kopia (copy. deepcopy())
Hermetyzacja w Pythonie (Encapsulation)
start learning
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
start learning
Oznacza atrybut chroniony (umownie). Technicznie jest publiczny, ale sygnalizuje programiście: "nie dotykaj spoza klasy"
__zmienna
start learning
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
start learning
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

You must sign in to write a comment