변수를 정의해서 사용하는데
어디까지 변수가 유효할까?
변수의 유효 범위 (Variable Scope)
변수의 유효 범위 : 변수가 선언된 위치에 따라 해당 변수가 영향을 미치는 범위
Python에서 변수의 유효 범위에 따라
전역 변수 (Global variable)
지역 변수 (Local variable)
로 나눌 수 있다!
전역 변수 (Global variable)
전역 변수 : 함수 밖에서 선언된 변수
x = 12
def func_a():
print(x)
func_a()
print(x)
실행 결과
12 # func_a()의 결과
12 # print(x)의 결과
지역 변수 (Local variable)
지역 변수 : 함수 안에서 선언된 변수
def func_a():
x = 12
print(x)
func_a()
print(x)
실행 결과
12 # func_a()의 결과
# print(x)의 결과로 name 'x' is not defined 에러
함수 안에서 변수를 global 로 지정하면 전역 변수로 사용 가능
def func_a():
global x
x = 12
print(x)
func_a()
print(x)
실행 결과
12 # func_a()의 결과
12 # print(x)의 결과
다른 예시
def func():
var = "지역 변수"
print(var)
var = "전역 변수"
print(var)
func()
print(var)
실행 결과
전역 변수 # print(var)의 결과
지역 변수 # func()의 결과
전역 변수 # print(var)의 결과
def func():
global var # var 변수를 전역 변수로
var = "지역 변수"
print(var)
var = "전역 변수"
print(var)
func()
print(var)
실행 결과
전역 변수 # print(var)의 결과
지역 변수 # func()의 결과
지역 변수 # print(var)의 결과, 지역 변수로 바뀌었다!
위처럼 전역 변수의 값을 함수 내부에서 바꾸는 것은 좋은 방법이 아님
이렇게 하면 다른 함수의 동작을 의도치 않게 바꿀 수 있으므로 지양해야 함
📝 참고
'Programming > Python' 카테고리의 다른 글
[Python] py ipynb 변환 (Jupyter Notebook 이용) (0) | 2022.04.12 |
---|---|
Python JSON 파일(.json) 저장 및 불러오기 (0) | 2022.03.03 |
Python Numpy Tutorial (with Jupyter and Colab) (0) | 2022.02.15 |
[Python] 객체지향 - super() (0) | 2021.11.15 |
[Python] 객체지향 - 클래스, 객체, 생성자 (0) | 2021.11.15 |