Jestem nowy w Pythonie, więc jest to prawdopodobnie proste pytanie dotyczące zakresu. Poniższy kod w pliku (module) Pythona nieco mnie dezorientuje:
if __name__ == '__main__':
x = 1
print x
W innych językach, w których pracowałem, ten kod zgłosiłby wyjątek, ponieważ xzmienna jest lokalna dla ifinstrukcji i nie powinna istnieć poza nią. Ale ten kod wykonuje i drukuje 1. Czy ktoś może wyjaśnić to zachowanie? Czy wszystkie zmienne są tworzone w module globalnym / dostępne dla całego modułu?
ifpowyższa instrukcja nie jest prawdziwa (tzn. Nie__name__jest , na przykład podczas importowania modułu zamiast wykonywania go na najwyższym poziomie), to nigdy nie zostanie powiązany, a kolejna instrukcja rzuci .'__main__'xprint xNameError: name 'x' is not defined