default value parameter :
ํจ์๊ฐ ํธ์ถ๋ ๋ ํ๋ผ๋ฏธํฐ์ ์ธ์๋ฅผ ๋ฐ์ ๋๊ฒจ์ค๋ค.
non-default value parameter :
ํจ์๊ฐ ํธ์ถ๋ ๋ ํ๋ผ๋ฏธํฐ์ ์ธ์๋ฅผ ๋ฐ์ ๋๊ฒจ์ค ์ ๋ ์์ผ๋ฉฐ,
์ธ์๋ฅผ ๋๊ฒจ์ฃผ์ง ์์๋ keywordname=value ํ์์ผ๋ก ์ ์ธ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ง์ ํ value ๋ฅผ ๋๊ฒจ์ค ์ ์๋ค.
์์
์๋์ ์์ ์ ๊ฐ์ด number๋ผ๋ ํจ์๊ฐ์๊ณ my ์ your๋ฅผ print ํด์ค๋ค.
์์ 5๋ฒ์งธ์ค์ ๋ณด๋ฉด my = '1234','567'์ด๋ผ๋ non-default value parameter๋ฅผ ๋ฐ๊ฒ ๋๊ณ SyntaxError: positional ์ด๋ผ๋ ์๋ฌ๊ฐ ์๊ธด๊ฒ์ ๋ณผ์์๋ค.
(๋ฐ๋ก ์๋๋ ์คํ..)
ํ์ง๋ง 9๋ฒ์งธ ์ค์ ๋ณด๋ฉด number(my = 1234, your = 5678) ์ผ๊ฒฝ์ฐ
non-default value parameter ํ์์ผ๋ก ์ง์ ์ด ๋์ด์๋๋ผ๋ keywordname = value ํ์์ผ๋ก ์ง์ ์ด ๋์ด์๊ธฐ ๋๋ฌธ์ ์คํ์ด ๋๋ค.
(number(your = 5678 , my = 1234)๋ก ์ง์ ๋์ด๋ ์คํ๋จ)
๋ฌผ๋ก ๋ง์ง๋ง๊ณผ ๊ฐ์ด default value parameter ๋ก ์์ฑ์ ํด๋ ๋ฌธ์ ๋ ์๋ค.
๊ฒฐ๋ก
-> ํ์ด์ฌ์์ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐ๋ ์์๋ ๋ค์๊ณผ ๊ฐ๋ค.
def example(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
ํ๋ผ๋ฏธํฐ๋ฅผ ์ ์ํ๋ ์์ ์์ด ๋ฌด์์๋ก ์์ฑ ์ ํจ์๋ ์ด๋ค ํ๋ผ๋ฏธํฐ์ ์ด๋ค ๊ฐ์ ๋ฐ์์ผ ๋ ์ง ์ ํ ์ ์๊ธฐ ๋๋ฌธ ์ด๋ค.
์ด ์์๋ฅผ ์งํค์ง ์๋๋ค๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
์์น ์ธ์๊ฐ parameter์ ํ ๋น๋ ๋ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ ์์์ ๋ฐฉํฅ์ฑ์ด ์กด์ฌ
์์น ์ธ์๋?
ํจ์๋ฅผ ํธ์ถํ ๋ ์ ๋ฌ๋๋ ๊ฐ์ด ๋งค๊ฐ๋ณ์์ ์์๋๋ก ์ ๋ฌ๋๋ ์ธ์๋ฅผ ์๋ฏธ
๊ฐ๋ณ์ธ์๋ ๋ฌด์์ธ๊ฐ ?
์ธ์์ ๊ฐ์๊ฐ ๋ณํ ์ ์๋ค๋ ์๋ฏธ์ด๋ฉฐ, ๊ฐ๋ณ์ธ์๋ฅผ ์ ๋ฌ๋ฐ๋ ํจ์๋ ํจ์๋ฅผ ํธ์ถํ ๋, ์ธ์์ ๊ฐ์๋ฅผ ๋ค์ํ๊ฒ ๋ฐ๊ฟ๊ฐ๋ฉฐ ์ฌ์ฉํ ์ ์๋ ํจ์๋ฅผ ์๋ฏธํ๋ค.
*arg๋ฅผ ์ฌ์ฉ์ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ์ ๋ ฅํ ๋ ์์๋ ์ค์ํ๋ค.
์ฐ์ ์์
1. ์์น ์ธ์ (default X)
2. ์์น ์ธ์ (default O)
3. / (์์น ์ธ์๋ค ์ด๋๊ฐ์ ์กด์ฌ)
4. ์์น ๊ฐ๋ณ ์ธ์ (*)
5. ํค์๋ ์ ์ฉ ์ธ์ (๊ธฐ๋ณธ๊ฐ ์ ๋ฌด ์๊ด ์์)
6. ํค์๋ ์ ์ฉ ๊ฐ๋ณ ์ธ์ (**)
์๋์ ์ฝ๋๋ฅผ ํธ์ถํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
def func_param_with_var_args(name, *args, age):
print("name=",end=""), print(name)
print("args=",end=""), print(args)
print("age=",end=""), print(age)
func_param_with_var_args("์ ์ฐ์ฑ", "01012341234", "seoul", 20)
TypeError: func_param_with_var_args() missing 1 required keyword-only argument: 'age'
age๊ฐ์ด *arg๊ฐ์ด๋ ๋ฐ๋์ด์ ์ ์ ์ถ๋ ฅ๋์ง ์๋๋ค๋ ์๋ฏธ์ error๊ฐ ๋ฐ์ํ๋ค.
์๋์ ๊ฐ์ดage๊ฐ๊ณผ *arg ๊ฐ์ ์์น๋ฅผ ๋ฐ๊ฟ ํธ์ถํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์๋๋ค.
def func_param_with_var_args(name,age,*args):
print("name=",end=""), print(name)
print("args=",end=""), print(args)
print("age=",end=""), print(age)
func_param_with_var_args("์ ์ฐ์ฑ", 20, "01012341234", "seoul")
์์ ๊ฐ์ด ์ ์ ์๋ ๋๋ ๊ฒ์ ํ์ธํ ์์๋ค.
def func_param_with_kwargs(name, age, **kwargs, address=0):
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", mobile="01012341234", address="seoul")
์์ ๊ฐ์ด ์ค๋ฅ ๋ฐ์
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")
์์ ๊ฐ์ด parameter์ ์์๋ฅผ ๋ฐ๊พผ ๋ค argument์ ์์๋ฅผ ์ง์ผ์ผ ํ์ด์ฌ์ด ์ด๋ ๋ถ๋ถ์ด ๊ฐ๋ณ ํค์๋ ์ธ์์ธ์ง ํ์ธ์ด ๊ฐ๋ฅํ๋ค.
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")
๋ฐ์
๋ฐ์ ์ด์ :
parameter ๊ฐ
(name="์์ด์ ", *args, age, **kwargs, address)
์ธ๋ฐ
argument๊ฐ
(20, "์ ์ฐ์ฑ", "01012341234", "male" ,mobile="01012341234", address="seoul")
ํจ์์ parameter ์์๋ฅผ ์ง์ผ parameter ์ ์ธ์ ํ ๋ค argument ์ ๋ฌ ์์๋ ๊ทธ ํ์์ ๋ฐ๋ผ์ผ ํจ์ผ๋ก
def mixed_params(age, name="์์ด์ ", *args, address, **kwargs):
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", address="seoul", mobile="01012341234")
์ด๋ ๊ฒ ๋ณ๊ฒฝํ๋ฉด ๋๋ค!