전역 변수는 함수 외부에서 정의되고 선언된 변수이므로 함수 내부에서 사용해야 합니다.
#这个函数使用全局变量s def f(): print s # 全局作用域 s = "I love Python" f()
출력:
I love Python
동일한 이름의 변수가 함수 범위 내에 정의된 경우 전역 값 대신 함수 내에 지정된 값만 인쇄됩니다.
# 这个函数有一个与s同名的变量。 def f(): s = "Me too." print s # 全局作用域 s = "I love Python" f() print s
출력:
Me too I love Python
함수 f()를 호출하기 전에 변수 s는 "I love Python"이라는 문자열로 정의됩니다. f()의 유일한 명령문은 "print s" 명령문입니다. local s가 없으므로 global s의 값이 사용됩니다.
문제는 f() 함수 내에서 s의 값을 변경하면 어떻게 될까요? 전반적인 상황에 영향을 미칠까요?
다음 코드에서 테스트합니다.
def f(): print s # 如果我们在下面评论,这个程序不会显示错误。 s = "Me too." print s #全局作用域 s = "I love Python" f() print s
출력:
Line 2: undefined: Error: local variable 's' referenced before assignment
위 프로그램이 작동하려면 "global" 키워드를 사용해야 합니다. 이를 할당/변경하려면 함수에서 전역 키워드를 사용하면 됩니다. 인쇄 및 액세스에는 전역 변수가 필요하지 않습니다.
Python은 f() 내부 할당으로 인해 지역 변수가 필요하다고 "가정"하므로 첫 번째 print 문에서 이 오류 메시지가 표시됩니다. 함수 내에서 변경되거나 생성된 모든 변수는 전역 변수로 선언되지 않은 경우 로컬 변수입니다. 전역 변수를 사용하고 싶다고 Python에 알리려면 "global" 키워드를 사용해야 합니다.
다음 예에서 볼 수 있듯이:
# 这个函数修改全局变量's' def f(): global s print s s = "Look for Python" print s #全局作用域 s = "Python is great!" f() print s
출력:
Python is great! Look for Python. Look for Python.
좋은 예:
a = 1 # 使用global,因为没有本地'a' def f(): print 'Inside f() : ', a #变量“a”被重新定义为局部变量 def g(): a = 2 print 'Inside g() : ',a #使用全局关键字修改全局'a' def h(): global a a = 3 print 'Inside h() : ',a # 全局作用域 print 'global : ',a f() print 'global : ',a g() print 'global : ',a h() print 'global : ',a
출력:
global : 1 Inside f() : 1 global : 1 Inside g() : 2 global : 1 Inside h() : 3 global : 3
관련 추천 : "Python Tutorial"
위 내용은 Python의 전역변수와 지역변수의 차이점(자세한 코드 설명)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!