728x90
반응형
SMALL
1. 스코프(Scope)
- 변수에 접근할 수 있는 범위
- local: 가장 가까운 함수 안의 범위
- global: 함수 바깥의 변수 또는 import 된 module
1-1. 지역변수(local variable)
- 함수 내에서 선언된 변수
- 함수 내에서만 유효한 변수
1-2. 전역 변수(global variable)
- 함수 외부에서 선언된 변수
def func1():
num1 = 20 # local 변수
print(num1)
# num1 는 func1 함수안에 정의된 지역변수이기 때문에 함수 바깥에서 사용할 수 없음
print(num1)
>>> NameError: name 'num2' is not defined
# 함수 실행
func1()
>>> 20
num2 = 10 # global 변수
print(num2)
>>> 10
1-3. 변수의 범위를 확인해주는 함수
- locals(): 로컬 변수를 확인해주는 함수
- globals(): 글로벌 변수를 확인해주는 함수
- in 문을 사용
num1 = 10 # global 변수
def func1():
num2 = 20 # local 변수
print('num1 로컬변수: ', 'num1' in locals()) # num1변수를 문자열로 보내야됨
def func2():
num2 = 20 #local 변수
print('num2 로컬 변수: ', 'num2' in locals())
def func3():
print('num1 글로벌 변수: ', 'num1' in globals())
func1()
>>> num1 로컬변수: False # num1은 local변수가 아니기 때문에 False
func2()
>>> num2 로컬 변수: True # num2는 local변수 이기 때문에 True
func3()
>>> num1 글로벌 변수: True # num1은 global 변수이기 때문에 True
num1 = 10 # 전역변수
def func4():
num1 = 20 # 지역변수
print(num1)
func4()
>>> 20 # 함수 호출 시 지역변수가 우선
print(num1) # 함수 바깥
>>> 10
2. global 키워드
- 함수 내부에서 로컬변수가 아닌 글로벌 변수로 사용하게 함
num1 = 10 # 글로벌 변수
def func5():
print(num1)
def func6(num):
num1 = num # 로컬 변수
func5()
>>> 10
func6(5)
func5
>>> 10 # 로컬변수에 값을 저장했으므로 글로벌 변수의 값이 변경되지 않음
num1 = 10
def func5():
print(num1)
def func6(num):
global num1 # global 변수를 함수 내부에서 사용할수 있게 해줌
num1 = num
func5()
>>> 10
func6(5)
>>> 5
728x90
반응형
LIST
'Python > Basic' 카테고리의 다른 글
[파이썬, Python] 상속 - 클래스 상속, 메소드 오버라이딩, 다중 상속 (0) | 2023.03.10 |
---|---|
[파이썬, Python] 객체지향 프로그래밍 - 객체 지향과 클래스(Class) (0) | 2023.03.09 |
[파이썬, Python] 함수 - 2️⃣ 콜백 함수(Callback Function) (0) | 2023.03.09 |
[파이썬, Python] 함수 - 1️⃣ 사용자 정의 함수 (0) | 2023.03.09 |
[파이썬, Python] 자료구조(Data Structure) - 4️⃣ 세트(set) (0) | 2023.03.08 |