Aktualnie uczę się Pythona i muszę pracować nad projektem Python 2.7.dostęp do "zakresu modułów" vars
Uzyskiwanie dostępu do zmiennych "zakresu modułów" w funkcjach samego modułu jest dla mnie nieco dezorientujące i nie udało mi się znaleźć satysfakcjonującego sposobu.
Moje próby do tej pory:
Way 1:
my_module.py
my_global_var = None
def my_func():
global my_global_var
my_global_var = 'something_else'
Tutaj myślę, że mylące lokalne i "Zakres" Vars moduł może być całkiem proste.
Way 2:
my_module.py
import my_module
my_global_var = None
def my_func():
my_module.my_global_var = 'something_else'
Tutaj nazwa "my_module" może nie być tak łatwo zmienić w "drodze 1" w razie potrzeby. Dodatkowo, import modułu do samego siebie brzmi dość dziwnie.
Co byś polecił? A może zaproponowałbyś coś innego? Dzięki.
Nie używaj '2' Way, Way używać' 1 '. Python, zakres i zadania są interesujące. Podczas odczytywania wartości z nazwiska tłumacz będzie zawsze wyszukiwał nazwę z najbardziej wewnętrznego zakresu na zewnątrz. Kiedy przypisujesz wartość do nazwy, robi to w bieżącym zakresie.Oznacza to, że jeśli przypiszesz do 'my_global_var' bez słowa kluczowego' global', twój moduł będzie miał dwa różne 'my_global_var' od punktu zagnieżdżonego przypisania zakresu i poza nim w zakresie zagnieżdżonym. Oświadczenie globalne mówi po prostu interpreterowi o przypisaniu wartości do zakresu 'global' dla nazwy' my_global_var'. – Matt