본문 바로가기
프로그래밍/Python 관련 정보

[Python Programming 기초] Variable Scope

by 물박사의 저장공간 2021. 11. 20.

파이썬에서는 기본적으로더 넓은 범위에 있는 변수 '읽기'는 가능. 더 넓은 범위에 있는 변수 '변경'은 불가능

 

1) global 

n이 lev2함수 바깥에서 이미 선언된 변수. 전역변수를 사용하려면 global이라는 명령어 필요

n = 100
def lev1():
    def lev2():
        global n
        n = n/2
        print(n) # 20
    lev2()
    
func1()

2) nonlocal
전역변수도 아니지만 현재 함수의 scope도 아닌 변수를 하기 위해서는 nonlocal 명령어 필요

n = 200
def lev1():
    a = 100 
    def lev2():
        nonlocal a
        a = a/50
        print(a) # 2
    lev2()
    
lev1()

 

자세한 내용은 아래 블로그 참고

https://juhi.tistory.com/6

 

[Python] nonlocal, global로 변수의 scope 변경하기 (파이썬에서 전역변수 사용하기)

👀 다른 scope에 있는 변수를 사용할 때 문제 case 1. 더 넓은 범위에 있는 변수 '읽기'는 가능 아래와 같이 전역변수로 n을 선언하고 이를 함수 내에서 읽기만 하는 경우 에러가 나지 않는다. n = 0 de

juhi.tistory.com