저는 파이썬을 처음 접했기 때문에 이것은 간단한 범위 지정 질문 일 것입니다. 파이썬 파일 (모듈)에서 다음 코드는 나를 약간 혼란 :if 문에서 초기화 된 변수의 범위는 무엇입니까?
내가에서 근무했습니다 다른 언어if __name__ == '__main__':
x = 1
print x
,이 코드가 예외를 슬로우의 x
변수가 if
문에 로컬 및 예상대로 그것 밖에 존재하지 않는다. 그러나이 코드는 실행되고 인쇄됩니다. 1. 아무도이 동작을 설명 할 수 있습니까? 모듈에 생성 된 모든 변수는 전체 모듈에서 전역 변수로 사용할 수 있습니까?
위의 if 문이 참이 아닌 경우 (예 : 모듈을 가져 오지 않고 모듈을 가져올 때와 같이 (예 :'__name__은 * not *' '__main __'') 최상위 레벨),'x'는 절대로 바운드되지 않을 것이고, 후속'print x' 문은'NameError : name 'x'not not defined'를 던질 것입니다. – Santa