728x90
반응형
SMALL

1. 스코프(scope)

  • 변수의 접근할 수 있는 범위
  • local: 가장 가까운 함수안의 범위
  • global: 함수 바깥의 변수 or import된 module
 

 
num1 = 10 # 글로벌 변수

def func1():
    num2 = 20 # 로컬 변수
    print(num2)
 
 

 
print(num1)
print(num2) # NameError: name 'num2' is not defined
 
 
 

 
num1 = 10 

def func1():
    num2 = 20 
    print(num2)
 

 
print(num1)
func1() # 로컬 변수를 가져오고싶으면 함수를 찍거나 리턴해서 가져오면 됌
 
10
20
 

 
# locals(): 로컬 변수를 확인해주는 함수
# globals(): r글로벌 변수를 확인해주는 함수

num1 = 10  # 글로벌 변수

def func1():
    num2 = 20 # 로컬 변수
    print('num1 로컬 변수: ', 'num1' in locals())
                              #num1 을 보낼때 문자열로 보내야함

def func2():
    num2 = 20 # 로컬 변수
    print('num2 로컬 변수: ', 'num2' in locals())

def func3():
    print('num1 글로벌 변수: ', 'num1' in globals())
 

 
func1()
func2()
func3()
 
num1 로컬 변수:  False
num2 로컬 변수:  True
num1 글로벌 변수:  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 # 로컬변수에 값을 저장했으므로 글로벌 변수의 값이 변경x
 
 

 
func5()
 
10
 

 
func6(5)
 

 
func5()
 
10

 
 
 
 
 

 
 
 
 
 
10
 

 
 
 
 
 
 

 
 
 
 
7

 

728x90
반응형
LIST

'파이썬' 카테고리의 다른 글

랜덤 모듈  (0) 2023.03.09
콜백 함수  (0) 2023.03.09
사용자 정의 함수(함수만들기)  (0) 2023.03.09
세트(set)  (0) 2023.03.08
자료구조- 딕셔너리(dictionary)  (0) 2023.03.08

+ Recent posts