ํจ์๋ฅผ ์ ์ ํ ๋ default value parameter๋ฅผ non-default value parameter ์์ ์ ์ ํ๋ฉด ์๋๋ค๊ณ ๋ฐฐ์ ์ต๋๋ค. ์ ์๋ผ์ผ๋ง ํ๋์ง ์๊ฐํด๋ณด์๊ณ ๋ธ๋ก๊น ํ์ฌ ์ฑ๋์ ๊ณต์ ํด ์ฃผ์ธ์.
def examole(a, b, c = None, r = "w", d=[], *ae, **ab)
a, b : positional parameter
c = none = optional parameter
r = "w" : keyword parameter
d = []: list parameter
*ae :keyword-only
**ab: var_keyword parameter
ํ์ด์ฌ์ด ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐ๋ ์์๋ค. ๋ฐ๋ ์์์ ์์น๊ฐ ํ๋ฆด์, ํจ์๋ ์ด๋ค ํ๋ผ๋ฏธํฐ์ ์ด๋ค ๊ฐ์ ๋ฐ์์ฌ ๋ ์ง ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ค๋ฅ๊ฐ ๋๋ค.
์์น ์ธ์(positional arguments)์ ๊ฐ๋ณ ์ธ์(variable length arguments)์ ์์น๋ฅผ ์ฐธ๊ณ ์๋ฃ๋ฅผ ํตํด ์กฐ์ฌํด์ ์ด๋ค์๋ฌ ์ธ์ง ํ์ธํ๊ณ ํจ์๊ฐ ํธ์ถ๋๋๋ก ์๋ฌ๋ฅผ ๊ณ ์น๊ณ ํธ์ถํ์ ์ถ๋ ฅ๋๋ ๊ฒฐ๊ณผ๋ฅผ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด ์ฃผ์ธ์.
def func_param_with_var_args(name, *args, age=20):
print("name=",end=""), print(name)
print("args=",end=""), print(args)
print("age=",end=""), print(age)
func_param_with_var_args("์ ์ฐ์ฑ", "01012341234", "seoul")
ํค์๋ ์ธ์ ์๋ฆฌ์ ๋จ์ํ ์์น ์ธ์๊ฐ ๋ค์ด์์๊ณ ๊ฐ๋ณ๋ค์ ํฌ์ง์ ๋ ์ธ์๊ฐ ์์ด์, age๋ฅผ ์ธ์ํ ์์ผฐ๋ค.
- ๊ฐ๋ณ ํค์๋ ์ธ์ (variable length keyword arguments)์ ์์น๋ฅผ ๋ค์ ์ฐธ๊ณ ์๋ฃ๋ฅผ ํตํด ์กฐ์ฌํด์ ์ด๋ค์๋ฌ ์ธ์ง ํ์ธํ๊ณ ํจ์๊ฐ ํธ์ถ๋๋๋ก ์๋ฌ๋ฅผ ๊ณ ์น๊ณ ํธ์ถํ์ ์ถ๋ ฅ๋๋ ๊ฒฐ๊ณผ๋ฅผ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด ์ฃผ์ธ์.
def func_param_with_kwargs(name, age, address=0, **kwargs):
print("name=",end=""), print(name)
print("age=",end=""), print(age)
print("kwargs=",end=""), print(kwargs)
print("address=",end=""), print(address)
func_param_with_kwargs("์ ์ฐ์ฑ", "20", address="seoul", mobile="01012341234")
---------------------------------------------
name=์ ์ฐ์ฑ
age=20
kwargs={'mobile': '01012341234'}
address=seoul
keyword ํ๋ผ๋ฏธํฐ๋ ๋งค๊ฐ๋ณ์ ์์ '**'๋ฅผ ๊ผญ ๋ํด์ผ ํ๋ค.
ํจ์์ ์์ ๋งค๊ฐ๋ณ์ ์์์์ ๊ฐ์ฅ ๋ค์ ๋ฐฐ์นํด์ผํ๋ค.
- ์์น ์ธ์์ ํค์๋ ๊ฐ๋ณ ํค์๋ ์ธ์ (variable length keyword arguments)์ ์์น๋ฅผ ๋ค์ ์ฐธ๊ณ ์๋ฃ๋ฅผ ํตํด ์กฐ์ฌํด์ ์ด๋ค์๋ฌ ์ธ์ง ํ์ธํ๊ณ ํจ์๊ฐ ํธ์ถ๋๋๋ก ์๋ฌ๋ฅผ ๊ณ ์น๊ณ ํธ์ถํ์ ์ถ๋ ฅ๋๋ ๊ฒฐ๊ณผ๋ฅผ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด ์ฃผ์ธ์.
def mixed_params(name="์์ด์ ", *args, age, **kwargs, address):
print("name=",end=""), print(name)
print("args=",end=""), print(args)
print("age=",end=""), print(age)
print("kwargs=",end=""), print(kwargs)
print("address=",end=""), print(address)
mixed_params(20, "์ ์ฐ์ฑ", "01012341234", "male" ,mobile="01012341234", address="seoul")