Python
파이썬 - 다양한 함수
앵남(Andy)
2021. 10. 11. 21:51
글 개요
이번 포스팅에서는 파이썬 지역변수와 전역변수를 설명해보겠습니다.
글 본문
전역변수
함수 밖에 선언된 변수로 어디에서나 사용가능하지만, 함수 안에서 변경할 수 없습니다. 코딩은 역시 텍스트보단 코딩해보는거겠죠?
#전역변수
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 함수로 처리할 수 있습니다.