산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

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

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

이 자습서에서는 Python 전역 변수, 지역 변수, 비지역 변수 및 사용 위치에 대해 알아봅니다.

동영상:Python 로컬 및 전역 변수

전역 변수

Python에서 함수 외부 또는 전역 범위에서 선언된 변수를 전역 변수라고 합니다. 즉, 전역 변수는 함수 내부 또는 외부에서 액세스할 수 있습니다.

파이썬에서 전역 변수를 생성하는 방법의 예를 살펴보겠습니다.

예제 1:전역 변수 생성

x = "global"

def foo():
    print("x inside:", x)


foo()
print("x outside:", x)

출력

x inside: global
x outside: global

위의 코드에서 x를 생성했습니다. 전역 변수로 정의하고 foo() 전역 변수 x를 인쇄하려면 . 마지막으로 foo() x 값을 출력합니다. .

x 값을 변경하려는 경우 함수 안에?

x = "global"

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

foo()

출력

UnboundLocalError: local variable 'x' referenced before assignment

Python이 x를 처리하기 때문에 출력에 오류가 표시됩니다. 지역 변수 및 x foo() 안에도 정의되어 있지 않습니다. .

이 작업을 수행하기 위해 global을 사용합니다. 예어. 자세히 알아보려면 Python 글로벌 키워드를 방문하세요.

<시간>

로컬 변수

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

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

def foo():
    y = "local"


foo()
print(y)

출력

NameError: name 'y' is not defined

로컬 변수 y에 액세스하려고 하기 때문에 출력에 오류가 표시됩니다. 전역 범위에서 로컬 변수는 foo() 내에서만 작동합니다. 또는 지역 범위.

<시간>

파이썬에서 지역 변수를 생성하는 방법에 대한 예를 살펴보겠습니다.

예시 3:지역 변수 생성

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

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

foo()

출력

local

x가 있는 이전 문제를 살펴보겠습니다. 전역 변수였고 x를 수정하고 싶었습니다. foo() 내부 .

<시간>

전역 및 지역 변수

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

예제 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를 사용했기 때문에 두 번 인쇄하려면 global . 그런 다음 지역 변수 y의 값을 출력합니다. 즉, local .

<시간>

예제 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 . 이것을 변수의 전역 범위라고 합니다.

<시간>

비지역 변수

비지역 변수는 지역 범위가 정의되지 않은 중첩 함수에서 사용됩니다. 이는 변수가 로컬 범위나 전역 범위에 있을 수 없음을 의미합니다.

파이썬에서 비지역 변수를 사용하는 방법의 예를 살펴보겠습니다.

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() 함수가 다른 함수 outer()의 범위에 정의되어 있습니다. .

참고 :로컬이 아닌 변수의 값을 변경하면 로컬 변수에 변경 사항이 나타납니다.


python

  1. C 변수, 상수 및 리터럴
  2. 파이썬 키워드와 식별자
  3. Python 문, 들여쓰기 및 주석
  4. Python 변수, 상수 및 리터럴
  5. Python 유형 변환 및 유형 캐스팅
  6. 파이썬 입력, 출력 및 가져오기
  7. 파이썬 전역 키워드
  8. 파이썬 숫자, 유형 변환 및 수학
  9. Python 디렉토리 및 파일 관리
  10. Python 오류 및 내장 예외