Coding/Python

[Python] *args, **kwargs

๊น€์œ ๋‹ˆ์ฝ˜ 2021. 12. 30. 15:59

*args, **kwargs

  • ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ• ๋•Œ ์•„๊ทœ๋จผํŠธ์™€ ํ‚ค์›Œ๋“œ ์•„๊ทœ๋จผํŠธ์˜ ๊ฐฏ์ˆ˜๋ฅผ ํŠน์ •์ง€์„ ์ˆ˜ ์—†์„๋•Œ ์‚ฌ์šฉ

ํ‚ค์›Œ๋“œ๊ฐ€ ์—†๋Š” Argument 

def plus(*args, **kwargs):
    print(type(args), args)
    
    print(type(kwargs), kwargs)
    return sum(args) + sum(list(kwargs.values()))
 
<class 'tuple'> (1, 2, 3, 4, 5)
<class 'dict'> {'num1': 6, 'num2': 7}
 

ํ‚ค์›Œ๋“œ๊ฐ€ ์žˆ๋Š” Argument : kwargs๋ฅผ ์‚ฌ์šฉํ•จ

 

์˜ˆ์‹œ  :

def func(num1, num2, num3):
    retrun num1 + num2 + num3 
    
data = [1,2,3]
    func(*data) #func(1, 2, 3) ํ•˜๋‚˜ํ•˜๋‚˜ ์ธ์ž ํ•˜๋‚˜์”ฉ ์ˆœ์ฐจ์ ์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ฒŒ ๋จ. num1 = 1, num2 = 2, num3 = 3
    func(data) #func([1,2,3])  *๋ฅผ ์•ˆ์“ฐ๋ฉด, list๋ฐ์ดํ„ฐ๊ฐ€ ๋„˜์–ด๊ฐ€์„œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœ.

argument ๊ฐ€ ๋งŽ๊ฑฐ๋‚˜, ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์œผ๋ฉด *arg๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊น”๋”ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ