파이썬에서는 기본적으로더 넓은 범위에 있는 변수 '읽기'는 가능. 더 넓은 범위에 있는 변수 '변경'은 불가능
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()
자세한 내용은 아래 블로그 참고
[Python] nonlocal, global로 변수의 scope 변경하기 (파이썬에서 전역변수 사용하기)
👀 다른 scope에 있는 변수를 사용할 때 문제 case 1. 더 넓은 범위에 있는 변수 '읽기'는 가능 아래와 같이 전역변수로 n을 선언하고 이를 함수 내에서 읽기만 하는 경우 에러가 나지 않는다. n = 0 de
juhi.tistory.com
'프로그래밍 > Python 관련 정보' 카테고리의 다른 글
[Python Programming 기초] 파이썬 연산자 우선순위 (2) | 2024.10.17 |
---|---|
Iterator/Generator의 활용 (2) | 2022.05.18 |
[Deep Learning] Progressive Disclosure of Complexity: TF (0) | 2021.11.21 |
[Pytorch] contiguous (0) | 2021.11.20 |
[Python] Dynamic 변수선언 (동적할당) (1) | 2021.11.09 |