>백엔드 개발 >파이썬 튜토리얼 >파이썬 전역 변수

파이썬 전역 변수

高洛峰
高洛峰원래의
2016-10-19 16:41:101205검색

전역 변수는 매개변수 전달 정신을 따르지 않기 때문에 상수를 정의하지 않는 이상 거의 사용하지 않습니다. 오늘 동료가 전역 변수에 관해 질문을 했고, 그렇게 할 수 있는 방법이 있다는 것을 알게 되었습니다.

프로그램은 대략 다음과 같습니다.

CONSTANT = 0
def modifyConstant() :
        print CONSTANT
        CONSTANT += 1
        return
if __name__ == '__main__' :
        modifyConstant()
        print CONSTANT

실행 결과는 다음과 같습니다.

UnboundLocalError: 할당 전에 참조된 지역 변수 'CONSTANT'

수정컨스턴트 함수에서 전역변수가 지역변수가 된 것 같은데요. 전역변수가 적용되지 않는 것 같은데요?

일부 수정:

CONSTANT = 0
def modifyConstant() :
        print CONSTANT
        #CONSTANT += 1
        return
if __name__ == '__main__' :
        modifyConstant()
        print CONSTANT

함수 내부에서 전역변수에 접근이 가능한 것 같습니다.

그래서 문제는 변수 CONSTANT가 함수 내에서 수정되기 때문에 Python은 CONSTANT를 지역 변수로 간주하고 인쇄 CONSTANT가 CONSTANT += 1 이전이므로 당연히 이런 오류가 발생한다는 것입니다.

그렇다면 함수 내에서 전역 변수에 어떻게 접근하고 수정하나요? 변수를 수정하려면 global 키워드를 사용해야 합니다(PHP와 유사).

CONSTANT = 0
def modifyConstant() :
        global CONSTANT
        print CONSTANT
        CONSTANT += 1
        return
if __name__ == '__main__' :
        modifyConstant()
        print CONSTANT


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.