Python에서 변수를 참조할 때 이 변수에 대한 검색은 로컬 범위(Local), 중첩 범위(Enclosing function locals), 전역 범위(Global), 내장 범위(buildins 모듈), 소위 LEGB 규칙. 즉, Python이 변수를 참조하는 순서는 현재 범위 로컬 변수 -> 외부 범위 변수 -> 현재 모듈의 전역 변수 -> Python 내장 변수입니다.
그러나 함수 내부에서 변수에 값을 할당할 때, 먼저 변수를 찾은 다음 변수에 값을 할당하는 것은 위에서 언급한 LEGB 규칙을 따르지 않습니다. Python에서는 함수의 변수에 값을 할당할 때 다음 규칙이 있습니다. "함수에서 변수 이름에 값을 할당할 때(표현식에서 참조하는 대신) Python은 항상 변수 이름을 생성하거나 변경합니다. 해당 함수에서 전역 변수로 선언되지 않은 경우 지역 범위의 "
파이썬에서 golbal 전역 변수 및 비지역 지역 변수
global 키워드는 함수 또는 다른 지역 범위 전역 변수에서 사용됩니다.
gcount = 0 #定义了一个全局变量,(可以省略global关键字) def global_test(): print (gcount) #不修改,只是引用全局变量,不使用global关键字 def global_counter(): global gcount gcount +=1 #修改全局变量,需要使用global关键字 return gcount
Output
1
2
3
nonlocal 키워드는 함수나 다른 범위에서 외부(비전역) 변수를 사용하는 데 사용됩니다.
def make_counter(): count = 0 #定义一个局部变量,该局部变量作用范围在make_counter()方法内 def counter(): nonlocal count #在方法counter()中使用外层局部变量 count count += 1 return count return counter def make_counter_test(): mc = make_counter() print(mc()) print(mc()) print(mc()) make_counter_test()
출력
3
위 내용은 전역 변수가 생성되지 않은 Python에서 전역 변수를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!