Python-parameter.md
Python ํจ์ ์ ์ธ๋ถ์ ๋ณด๋ฉด ๊ฐ๋ args, kwargs๋ฅผ ๋ณผ์ ์๋ค.
args : ์ ํด์ง์ง ์์ ์์ (์ผ๋ฐ)ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐ๋๋ค
kwargs : ์ ํด์ง์ง ์์ ์์ (ํค์๋)ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐ๋๋ค ? ์ด๊ฒ ๋ฌด์จ ์๋ฆด๊น ์ฐจ๊ทผ์ฐจ๊ทผ ์ดํดํด๋ณด์
Python์ Parameter
์ผ๋ฐ ํ๋ผ๋ฏธํฐ
def myFunc(a, b):
return a + b
myFunc(1, 2)
์์ ๊ฐ์ด ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉํ๋ ํ๋ผ๋ฏธํฐ
ํค์๋ ํ๋ผ๋ฏธํฐ
def myFunc(a=0, b=1):
return a + b
myFunc(1, 2)
์์ ๊ฐ์ด ํ๋ผ๋ฏธํฐ์ ์ด๋ฆ๊ณผ ํจ๊ป default๊ฐ์ ์ง์ ํ ํ๋ผ๋ฏธํฐ ์ผ๋ฐ์ ์ผ๋ก ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐ๋ ๋ฐฉ์์ผ๋ก ๋ฐ์ผ๋ฉด ๋์ง๋ง,
def myFunc(a=0, b=3, c=1):
return a + b + c
์์ ๊ฒฝ์ฐ์์ a,b๋ ๊ธฐ๋ณธ ์ธ์ ๊ฐ ๊ทธ๋๋ก ์ฌ์ฉํ๊ณ c์๋ง ๋ค๋ฅธ ๊ฐ์ ๋ฃ์ด์ฃผ๊ณ ์ถ์ ๊ฒฝ์ฐ
myFunc(c=4)
์ด๋ ๊ฒ ํธ์ถํ๋ ์ชฝ์์ ๋ณ์๋ช (ํค์๋)๋ฅผ ์ง์ ํด์ฃผ๋ฉด ๋๋ค.
ํ์ง๋ง ํค์๋ ์ธ์๋ ์ผ๋ฐ ์ธ์ ๋ค์ ์์ผ ํ๋ค. ๋ํ ํธ์ถํ ๋์๋ ์ผ๋ฐ ์ธ์ ๋ค์ ์์ผํ๋ค.
def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'):
...
# ๊ฐ๋ฅ
parrot(1000)
parrot(voltage=1000)
parrot(voltage=1000000, action='VOOOOOM')
# ๋ถ๊ฐ๋ฅ
parrot() # ์ผ๋ฐ ์ธ์๊ฐ ์์
parrot(voltage=5.0, 'dead') #ํค์๋ ์ธ์ ๋ค์ ์ผ๋ฐ ์ธ์๊ฐ์ ์ฃผ์ง ๋ชปํจ
parrot(110, voltage=220) # ํ ์ธ์์ ๋ ๊ฐ์ ์ฃผ์ง ๋ชปํจ
parrot(actor='John Cleese') # actor๋ผ๋ ํค์๋๊ฐ ์์
์ด์ args์ kwargs๋ฅผ ๋ณด์
**kwargs๋ ๋์ ๋๋ฆฌ ํํ๋ก ํค์๋ ์ธ์๋ค ์ค์์ ์ผ๋ฐ ์ธ์๊ฐ ์๋ ๊ฒ๋ค์ ๋๊ฒจ ๋ฐ๋๋ค. *args๋ ์ผ๋ฐ ์ธ์๊ฐ์ ๋ฐ์ผ๋ฏ๋ก **kwargs์ ํผ์ฉํ๋ ๊ฒฝ์ฐ ๋ฐ๋์ **kwargs๊ฐ ๋ค์ ์์ผ ํ๋ค.
def myFunc(a, *args, **kwargs):
print('a=', a)
print('args=', args)
print('kwargs=', kwargs)
>>> myFunc(11)
a= 11
args= ()
kwargs= {}
>>> myFunc(11,22,33) #์ผ๋ฐ ์ธ์ ๊ฐ์ด๊ธฐ ๋๋ฌธ์ 22, 33์ args์ ๋ค์ด๊ฐ๋ค
a= 11
args= (22, 33) #type : <class 'tuple'>
kwargs= {}
>>> myFunc(11,22,33,b=44,c=55) # ํค์๋ ์ธ์ b, c๋ kwargs์ ๋ค์ด๊ฐ๋ค.
a= 11
args= (22, 33)
kwargs= {'c': 55, 'b': 44} # type : <class 'dict'>
Last updated