English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

파이썬 기본 강의

Python 흐름 제어

Python 함수

Python 데이터 타입

Python 파일操作

Python 객체와 클래스

Python 날짜와 시간

Python 고급 지식

Python 참조 매뉴얼

Python 전역, 지역 및 비지역 변수

이 문서에서는 Python 전역 변수, 지역 변수, 비지역 변수, 그리고 이들을 사용하는 방법에 대해 배울 것입니다.

전역 변수

Python에서는 함수 외부 또는 전역 범위에서 선언된 변수는 전역 변수라고 합니다. 이는 함수 내부 또는 외부에서 전역 변수에 접근할 수 있다는 의미입니다.

Python에서 전역 변수를 생성하는 예제를 보겠습니다.

예제1:전역 변수 생성

x = "global"
def foo():
 print("내부 x:", x)
foo()
print("외부 x:", x)

코드를 실행할 때, 다음과 같이 출력됩니다:

내부 x: global
외부 x: global

위의 코드에서는x전역 변수로 생성되었으며, foo()를 정의하여 전역 변수를 출력하도록 했습니다x결국, foo()를 호출하여 출력됩니다x의 값.

함수 내에서 값을 변경하려면x의 값을 어떻게 할까요?

x = "global"
def foo():
 x = x * 2
 print(x)
foo()

코드를 실행할 때, 다음과 같이 출력됩니다:

UnboundLocalError: local variable 'x' referenced before assignment

출력은 오류를 표시합니다. because Python은 x를 지역 변수로 간주하며, x도 foo()에서 정의되지 않았습니다.

이 기능을 구현하기 위해 전역 키워드를 사용했습니다. 더 많은 정보를 얻으려면 방문하세요Python 전역 키워드

지역 변수

함수 내 또는 지역 범위에서 선언된 변수는 지역 변수라고 합니다.

예제2:지역 변수의 접근 범위 밖

def foo():
 y = "local"
foo()
print(y)

코드를 실행할 때, 다음과 같이 출력됩니다:

NameError: name 'y' is not defined

출력은 오류를 표시합니다.因为我们试图在全局范围内访问一个局部变量y,而局部变量只在foo()或局部范围内工作。

Python에서 지역 변수를 생성하는 예제를 보겠습니다.

예제3:지역 변수 생성

일반적으로 함수 내에서 변수를 선언하여 지역 변수를 생성합니다.

def foo():
 y = "local"
 print(y)
foo()

코드를 실행하면 다음과 같이 출력됩니다:

local

보겠습니다.이전 문제그리고x은 전역 변수로, foo() 내에서 수정하고 싶습니다.x

전역과 지역 변수

이곳에서는 동일한 코드에서 전역 변수와 지역 변수를 사용하는 방법을 보여줍니다.

예제4:동일한 코드에서 전역 변수와 지역 변수 사용

x = "global"
def foo():
 global x
 y = "local"
 x = x * 2
 print(x)
 print(y)
 
foo()

코드를 실행할 때, 다음과 같이 출력됩니다:

global global 
local

위의 코드에서는 x를 전역 변수로, y를 foo() 내의 지역 변수로 선언했습니다. 그런 다음, 곱 연산자를 사용하여*전역 변수 x를 수정하면서 x와 y를 출력합니다.

foo() 호출 후, x의 값은 "global global"로 변경됩니다. 이는 x를 사용했기 때문입니다. * 2을 두 번 출력합니다. 그런 다음, 지역 변수 y의 값을 출력합니다.

예제5:동일한 이름의 전역 변수와 지역 변수

x = 5
def foo():
 x = 10
 print("local x:", x)
foo()
print("global x:", x)

코드를 실행할 때, 다음과 같이 출력됩니다:

local x: 10
global x: 5

위의 코드에서, 전역 변수와 지역 변수에 동일한 이름 x를 사용했습니다. 동일한 변수를 출력할 때, 두 개의 범위에서 선언된 변수이기 때문에 다른 결과를 얻습니다. 이는 foo() 내의 지역 범위와 foo() 외의 전역 범위에서 선언된 변수입니다.

foo() 내에서 변수를 출력할 때, 출력되는 것은 "local x:"입니다. 10이는 변수의 지역 범위라고 합니다.

foo() 외부에서 변수를 출력할 때, 변수는 "global x:"로 출력됩니다. 5이는 변수의 전역 범위라고 합니다.

비지역 변수

비지역 변수는 정의되지 않은 지역 범위의 내부 함수에 사용됩니다. 이는 변수가 지역 범위나 전역 범위에 있지 않다는 의미입니다.

Python에서 전역 변수를 생성하는 예제를 보겠습니다.

nonlocal 키워드를 사용하여 비지역 변수를 생성합니다.

예제6:비지역 변수 생성

def outer():
 x = "local"
 
 def inner():
 nonlocal x
 x = "nonlocal"
 print("inner:", x)
 
 inner()
 print("outer:", x)
outer()

코드를 실행할 때, 다음과 같이 출력됩니다:

inner: nonlocal
outer: nonlocal

위의 코드에서, 내부 함수 inner()가 있습니다. nonlocal 키워드를 사용하여 비지역 변수를 생성합니다. inner() 함수는 external() 함수의 범위 내에 정의되었습니다.

주의띄어쓰기: 우리가 비지역 변수의 값을 변경하면, 이 변경 사항이 지역 변수에 나타납니다.