language/Python

[Function] 가변 인자(*args)와 키워드 가변 인자(**kwargs)

브라우니란 2023. 11. 16. 17:36

 

 

가변 인자 (*args)

 

1. 기본 구조

def 함수이름(*args):
    for i in args:
        수행할 문장

 

 

 

 

2. 특징

임의의 개수의 인수(arguments)를 "튜플" 형태로 입력값을 받는다.

일반적으로 가변 인자라고 해당 변수를 표시할 때는 *args를 많이 사용한다.

 

 

 

 

3. 기본 가변 인자 함수

  • 입력되는 모든 수의 합을 구하는 함수
def all_number_sum(*arg):
    total = 0
    for i in arg:
        total += i
    return total

 

 

 

4. 가변인자와 기본 인자를 함께 사용하는 경우

  • 첫 번째 매개변수에 입력되는 입력값에 따라 인자의 합 또는 곱을 구하는 함수
def cal(arg1,*arg2):
    if arg1.lower() == 'sum':
        total = 0
        for i in arg2:
            total += i
            
    elif arg1.lower() == 'multiply':
        total = 1
        for i in arg2:
            total *= i
        
    else:
        total = None
    
    return total

        
  
sum_total = cal('sum',1,2,3,4,5)
multi_total = cal('multiply',1,2,3,4,5)

 

 

5. 가변 인자에 자료형을 입력값으로 사용하는 경우

  • 가변 인자 형식 매개변수에 형식 배개변수에 실제 값을 리스트, 튜플로 전달 할 때 꼭 변수 이름 앞에 * 붙인다.
def cal(arg1,*arg2):
    if arg1.lower() == 'sum':
        total = 0
        for i in arg2:
            total += i
            
    elif arg1.lower() == 'multiply':
        total = 1
        for i in arg2:
            total *= i
        
    else:
        total = None
    
    return total


x = [1,2,3,4,5]
total_sum = cal('sum',*x)

 

 

 


 

 

키워드 가변 인자(**kwargs)

 

 

1. 기본 구조

def dic_f(**kwargs):
    for k, v in kwargs.items():
        print(k, v) # key, value 출력

 

 

2. 의미

임의의 개수의 키워드 인수(keyword arguments)를 "딕셔너리" 형태로 입력값을 받는다.

통상적으로는 **kwargs으로 변수명을 사용한다.

 

 

 

3. 키워드 가변 인자에 딕셔너리 자료형을 입력하는 경우

  • 키워드 가변 인자 형식 매개변수에 형식 배개변수에 실제 값을 딕셔너리로 전달 할 때 꼭 변수 이름 앞에 ** 붙인다.
# 함수
def dic_f(**kwargs):
    for k, v in kwargs.items():
        print(k, v) # key, value 출력
        

# 딕셔너리 자료형
info = {"first_name": "길동","last_name": "홍", "email": "gukkdibg@itwill.com"}


# 넣어줄 때 딕셔너리 자료형이라고 ** 표시
dic_f(**info)