전역 변수가 생성되지 않은 Python에서 전역 변수를 사용하는 방법

silencement
풀어 주다: 2019-05-27 17:29:28
원래의
3341명이 탐색했습니다.

전역 변수가 생성되지 않은 Python에서 전역 변수를 사용하는 방법

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿