programowanie2

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

Devi essere accedere per pubblicare un commento.