범위 소개
파이썬에는 4가지 유형의 범위가 있습니다. L: 로컬, 로컬 범위, 즉 함수에 정의된 변수
E: 포함, 중첩된 상위 함수의 로컬 범위, 즉 이 함수를 포함하는 상위 함수의 로컬 범위(전역은 아님)
G: 모듈 수준에서 정의된 변수인 전역 변수 B: 내장, int, bytearray 등과 같은 시스템 고정 모듈의 변수 변수 검색의 우선순위는 로컬 범위 > 외부 범위 > 현재 모듈의 전역 > Python 내장 범위(LEGB)입니다.
x = int(2.9) # int built-in g_count = 0 # global def outer(): o_count = 1 # enclosing def inner(): i_count = 2 # local
물론 로컬 변수와 둘러싸는 변수는 상대적이고, 둘러싸는 변수도 상위 레이어에 상대적인 로컬 변수입니다.
#定义变量a >>> a = 0 >>> print a 0 #定义函数p() >>> def p(): ... print a ... >>> p() 0 #定义函数p2() >>> def p2(): ... print a ... a = 3 ... print a ... >>> p2() # 运行出错,外部变量a先被引用,不能重新赋值 Traceback (most recent call last): File "<interactive input>", line 1, in <module> File "<interactive input>", line 2, in p2 UnboundLocalError: local variable 'a' referenced before assignment #定义函数p3() >>> def p3(): ... a = 3 # 不引用直接赋值 ... print a ... >>> p3() 3 >>> print a 0 # 外部变量a并未改变
위는 편집자가 소개한 Python의 변수 및 범위에 대한 자세한 설명입니다. 궁금한 사항이 있으면 메시지를 남겨주시면 편집자가 시간에 맞춰 답변해 드리겠습니다. 또한 Script House 웹사이트를 지원해 주시는 모든 분들께 감사의 말씀을 전하고 싶습니다!