rate
전역 변수로 초기화 했습니다.
import os, sys
rate=30
def foo():
print('#########rate:', rate)
if False:
rate=int(sys.argv[2])
foo()
하지만 스크립트를 실행할 때 다음 오류가 발생합니다.
Traceback (most recent call last):
Line 10, in <module>
foo()
Line 5, in foo
print('#########rate:', rate)
UnboundLocalError: local variable 'rate' referenced before assignment
하지만 if False: rate=int(sys.argv[2])
문이 실행되지 않습니다, 그것은 어떤 영향을 미치는 것 같다 일부 파이썬 규칙이이 설명합니다입니까?
rate
글로벌로 선언해야합니다 .
import os, sys
rate=30
def foo():
global rate # <----
print('#########rate:', rate)
if False:
rate=int(sys.argv[2])
foo()
varaint에 할당이 있으면 (전역 선언없이) 지역 변수로 처리됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다