본문 바로가기
Python

파이썬 - 다양한 함수

by 앵남(Andy) 2021. 10. 11.

글 개요 

이번 포스팅에서는 파이썬 지역변수와 전역변수를 설명해보겠습니다.

 

글 본문

 

전역변수

함수 밖에 선언된 변수로 어디에서나 사용가능하지만, 함수 안에서 변경할 수 없습니다. 코딩은 역시 텍스트보단 코딩해보는거겠죠?


#전역변수
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 함수로 처리할 수 있습니다. 

댓글