0
최근에 내 코드에서 버그를 잡았습니다. 가장 큰 문제는 코드가 아래 작동한다는 것입니다 :파이썬 전역 변수 범위
def test():
print(memory)
if __name__ == "__main__":
memory = 1
test()
memory
이 파일의 상단에 정의 그러나 이것은 나를 위해 모든 범위 규칙을 깨는 것 같아한다면 그것은 분명 할 것이다. 그러나 어떤 이유가 있어야합니다.
나에게 논리적 인 것 같습니다. 'test()'가 호출 될 때까지'memory'가 이미 정의되어 있습니다. – ifconfig
파이썬은 프로그램을 읽는 순서로 프로그램을 실행합니다. yiu가 함수를 정의 할 때 함수를 호출 할 때만 실행되므로 파이썬은 첫 번째 실행을 살펴 보지 않습니다. 당신은 'test()'에 대한 호출을 그 함수의 내용으로 바꾼다고 가정 할 수도 있습니다. – avloss
@ifconfig 경험 후에 논리적으로? 나는 C와 선언을 컴파일하기 전에 함수에서 전역 변수를 사용하는 코드를 사용하곤했다. 그리고 이것은 논리적으로 보입니다. –