Zanurkuj w Pythonie/locals i globals: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Piotr (dyskusja | edycje)
poprawki
Derbeth (dyskusja | edycje)
m ort.
Linia 72:
 
# <code>SGMLParser</code> został zaimportowany z <code>sgmllib</code>, wykorzystując <code>from module import</code>. Oznacza to, że został zaimportowany bezpośrednio do przestrzeni nazw modułu i w tym też miejscu jest.
# W przeciwieństwie do <code>SGMLParser</code>-a, <code>htmlentitydefs</code> został zaimportowany wykorzystując instrukcję <code>import</code>. Oznacza to, że moduł <code>htmlentitydefs</code> sam w sobie jest przestrzenią nazw, ale zmienna <code>entitydefs</code> wewnątrz <code>htmlentitydefs</code> już nie.
# Moduł ten definiuje jedną klasę, <code>BaseHTMLProcessor</code> i oto ona. Dodajmy, że ta wartość jest klasą [[../Atrybuty klas#przy-5.17|samą w sobie]], a nie jakąś specyficzną instancją tej klasy.
# Pamiętasz [[../Testowanie modułów|trik <code>if __name__</code>]]? Kiedy uruchamiamy moduł (zamiast importować go z innego modułu), to wbudowany atrybut <code>__name__</code> ma specjalną wartość, <code>"__main__"</code>. Ponieważ uruchomiliśmy ten moduł jako skrypt z linii poleceń, wartość <code>__name__</code> wynosi <code>"__main__"</code>, dlatego też zostanie wykonany mały kod testowy, który wypisuje <code>globals</code>.