글 개요
이번 포스팅에서는 파이썬 지역변수와 전역변수를 설명해보겠습니다.
글 본문
전역변수
함수 밖에 선언된 변수로 어디에서나 사용가능하지만, 함수 안에서 변경할 수 없습니다. 코딩은 역시 텍스트보단 코딩해보는거겠죠?
#전역변수
nums = 10
def checkNum():
# 지역변수
nums = 20
print(f'inner function nums: {nums}')
checkNum()
print(f'outer nums: {nums}')
# 결과
inner function nums: 20
outer nums: 10
함수 밖에있는 변수와 함수 안에 있는 변수가 같은 이름이라도 출력되는 결과가 다른게 보이시나요? 즉, 함수 내에있는 변수는 함수안에서 만 사용 가능합니다. 만약 함수안에 있는 변수를 밖에 사용하면 어떻게 될까요?
def checkNum():
# 지역변수
nums = 20
#결과
print(f'nums: {nums}')
NameError: name nums is not defined
함수 안에서 사용하는 변수는 밖에서 사용못하는게 보이시나요? 즉, 지역변수는 함수내부에서 만 사용 가능하지만 전역변수는 함수 내외부에서 사용가능합니다.
중첩함수
중첩함수는 함수안에서 또 다른 함수가 있는 형태입니다. 또한, 함수 내부에서 호출까지 가능합니다. 그렇지만, 내부 함수를 함수 밖에서 호출할 수 없습니다.
def out_function():
print('out_function!')
def in_function():
print("in_function!")
in_function()
out_function()
#결과
out_function!
in_function!
#만약 in_function호출시
in_function()
NameError: name in_function is not defined
이처럼, 함수 안에서 선언한 함수는 함수 내부에서 만 호출할 수 있고 만약 밖에서 호출하면 error를 만나게 됩니다.
lambda 키워드
lambda 키워드를 이용하면 함수 선언보다 간단하게 할 수 있습니다.
def calculator(a, b)
return a * b
returnResult = calculator(10, 2)
print('result: {returnResult}')
cal = lambda a, b: a * b
resultResult2 = cal(10, 2)
print('result2: {resultResult2}')
#결과
result: 20
result2: 20
간단한 함수는 lambda 함수로 처리할 수 있습니다.
'Python' 카테고리의 다른 글
파이썬 - 전역변수 __name__ (0) | 2021.10.11 |
---|---|
파이썬 - 모듈 (0) | 2021.10.11 |
파이썬- 함수의 이해 (0) | 2021.10.09 |
파이썬- 자료구조(리스트, 튜플, 딕셔너리, 세트)- 리스트 (2) | 2021.10.04 |
pandas - 멀티 인덱스(Multi-index) 삭제하기 (0) | 2021.09.29 |
댓글