>백엔드 개발 >파이썬 튜토리얼 >Python에서 지역변수와 전역변수를 사용할 때의 어려움에 대한 자세한 설명

Python에서 지역변수와 전역변수를 사용할 때의 어려움에 대한 자세한 설명

巴扎黑
巴扎黑원래의
2017-09-19 11:06:281954검색

로컬 변수: 함수에 정의된 변수로 해당 범위는 현재 함수이며 현재 함수에서만 작동합니다.

전역 변수: 코드 시작 부분에 정의된 변수로, 범위는 코드 전체이며, 코드 전체에 영향을 미칩니다.

먼저 아래 예시를 살펴보고 마지막으로 결론을 내리겠습니다.

name = 'PythonTab'
def func1():
    print('my name is %s' %(name))
    name = 'PythonTab.com'
    print('my name is %s' %(name))
func1()
print(name)

출력 결과:

my name is PythonTab
my name is PythonTab.com
default

결론: 전역 변수와 지역 변수가 동일한 경우 함수 내에서 지역 변수가 먼저 사용됩니다. 지역 변수가 없으면 전역 변수가 사용됩니다

함수 내부의 전역 변수에 상대적인 지역 변수를 만들고 싶습니다. 변수가 효과가 있으면 함수에서 glob을 사용할 수 있습니다.

name = 'default'
def func2():
    global name
    name = 'PythonTab.com'
    print(name)
func2()
print(name)

의 출력 결과를 살펴보겠습니다.

PythonTab.com
PythonTab.com

nameList =['Python','Tab','.com']
def func3():
    nameList[0] = 'python'
func3()
print(nameList)

의 출력 결과:

['python','Tab','.com']
nameList =['Python','Tab','.com']
def func4():
    nameList = []
func4()
print(nameList)

출력 결과:

['python','Tab','.com']

여기에서 nameList를 볼 수 있습니다. 이 전역 변수는 함수 내에서 호출되지 않고 전역 변수가 변경됩니다. 왜냐하면 Python에서는 목록, 사전 등의 요소 값만 수정하는 경우에는 globabl이 필요하지 않기 때문입니다. 전체 목록을 수정하려면 globabl이 있어야 합니다.

nameList =['Python','Tab','.com']
def func5():
    gloabl nameList
    nameList = []
func5()
print(nameList)

출력 결과:

[]

요약: 로컬 함수는 함수 내에서만 작동하고 전역 함수는 전체 코드에서 작동합니다. 함수 내 전역 변수의 값을 수정하려면 glob을 사용하세요. 리스트, 딕셔너리 등의 특정 값만 수정하는 경우에는 전역변수 없이 전역변수를 수정할 수 있습니다.

위 내용은 Python에서 지역변수와 전역변수를 사용할 때의 어려움에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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