728x90
반응형
유효 범위 (variable scope)
- 변수의 선언에 따라 해당 변수가 미치는 범위
- python에는 지역변수(local variable)과 전역변수(global variable)이 있다.
지역변수 (local variable)
- 함수 내에서 선언된 변수
- 일반적으로는 함수 내에서만 사용 가능하다.
def func():
a = 'local variable'
print(a)
func() # local variable
지역변수 (global variable)
- 함수 외부에서 선언된 변수
- gloabl 키워드를 통해 함수 내부에서 사용 가능하다.
def func():
a = 'local variable'
print(a)
a = 'global variable'
print(a)
func()
# global variable
# local variable
def func():
global a
a = 'B'
print(a)
a = 'A'
func()
# B
- nonlocal은 global 키워드와 달리 중첩함수 내에서의 변수 범위를 대상으로 한다.
def func():
a = 1
def plus():
a = 2
plus()
print(a)
func()
# 1
def func():
a = 1
def plus():
nonlocal a
a = 2
plus()
print(a)
func()
# 2
* mutable, immutable
- mutable객체는 수정 가능하다. (list, dict)
- immutable객체는 수정 불가능하다. (int, float, str, tuple)
a = 0
b = [0]
c = {'c':0}
d = [0]
e = [0]
def func():
# a += 1
b[0] += 1
c['c'] += 1
d.append(1)
e = [1]
# print('a:', a)
print('b:', b)
print('c:', c)
func()
print(d)
print(e)
# a : cannot access local variable 'a' where it is not associated with a value
# b : [1]
# c : {'c':1}
# d : [0, 1]
# e : [0]
'Python 활용하기' 카테고리의 다른 글
데코레이터 (0) | 2023.11.10 |
---|---|
행렬의 곱셈 (0) | 2023.11.06 |
2차원 리스트 생성 (0) | 2023.07.31 |
[자료구조] 트라이(Trie) (0) | 2023.01.19 |
[Algorithm] LIS(Longest Increase Sequence) (0) | 2023.01.12 |