ํ๋ฆฌ๋ฏธํฐ
๋ฅผ ๋ฐ์์ ๋ฆฌํด๊ฐ
์ ์์์ผ๋ก ๋ฆฌํดํ๋ค. ๊ทธ๋ฆฌ๊ณ ํจ์๋ฅผ ํธ์ถํ ๋ ํ๋ผ๋ฏธํฐ
๋ฅผ ๊ฑด๋ค์ฃผ์ด์ ํธ์ถํ๋ค. position arguments
๋ผ๊ณ ํจdef love(food,friend):
print(f"{food} and {friend}")
love("ํฌ์ผ","ํ๊ธธ๋")
#๊ฒฐ๊ณผ
ํฌ์ผ and ํ๊ธธ๋
keyword arguments
๋ผ๊ณ ํจdef love(food,friend):
print(f"{food} and {friend}")
love(friend= "ํ๊ธธ๋", food = "ํฌ์ผ")
#๊ฒฐ๊ณผ
ํฌ์ผ and ํ๊ธธ๋
keyword argument
์ ์์๋ ์๊ด ์์ง๋ง, position argument
์ ์์๋ ๊ผญ ์ง์ผ์ค์ฌ ํ๋ค. ๋ง์ฝ ์งํค์ง ์๋๋ค๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. def love(food,friend):
print(f"{food} and {friend}")
love("ํฌ์ผ", friend="ํ๊ธธ๋")
#๊ฒฐ๊ณผ
ํฌ์ผ and ํ๊ธธ๋
def love(food,friend="ํ๊ธธ๋"):
print(f"{food} and {friend}")
love("ํฌ์ผ")
#๊ฒฐ๊ณผ
ํฌ์ผ and ํ๊ธธ๋
โก๏ธ ํจ์๋ฅผ ์ ์ ํ ๋ default value parameter๋ฅผ non-default value parameter ์์ ์ ์ ํ๋ฉด ์ ๋๋ ์ด์ ?
- ๋ง์ฝ position arguments๊ฐ ํ๋ผ๋ฏธํฐ์ ํ ๋น๋ ๋ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ํ ๋น๋๋ค. ์ฆ ์์์ ์ด ์กด์ฌํ๋ค. ํ์ง๋ง ๋ํดํธ ํ๋ผ๋ฏธํฐ๋ฅผ ์์ ์ ์ํ๋ฉด ํจ์๋ ๊ฐ์ ์ด๋์ ์ ์ํด์ผํ๋์ง ์์๊ฐ ์๋ค. ๋ฐ๋ผ์ ๋ํดํธ ํ๋ผ๋ฏธํฐ๊ฐ ์ ์๋์ง ์์ ํ๋ผ๋ฏธํฐ ์์ ์์นํ๋ฉด ์ ๋๋ค.
- Regular Positional Arguments (์์)
- Default Arguments (ํ๋ผ๋ฏธํฐ์ ๋ํดํธ)
- Variable Length Positional Arguments (*args)
- Non-Default Keyword-Only Arguments (ํจ์์ ์ ์ธ์์ ๋ํดํธ ๊ฐ์ด ์์, ํค์๋ ์กด์ฌ)
- Keyword-Only Arguments With Defaults (ํจ์ ์ ์ธ์์ ๋ํดํธ ๊ฐ์ด ์กด์ฌ)
- Variable Length Keyword Arguments (kwargs)
(ํค์๋์ ๋ํดํธ ์ ํ์ธํ๊ธฐ. ํจ์์ ์ ์ธ์์ ํ๋ผ๋ฏธํฐ์ ๋ฃ๋๊ฒ ๋ํดํธ ๊ฐ!!!)
*args
๋ ์
๋ ฅ๊ฐ์ด ๋ช๊ฐ์ธ์ง ๋ชจ๋ฅผ ๋ ์ฌ์ฉํ๋ฉฐ ์
๋ ฅ๊ฐ์ ์ ๋ฌธ ๋ชจ์ ํํ ํํ๋ก ๋ง๋ค์ด์ค๋ค. 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)
#์๋ฌ ๋ฐ์
โก๏ธ ์์ ํจ์๋ฅผ ๋ณด๋ฉด name์๋ ์ ์ฐ์ฑ, args์๋ ๋ฒํธ์ ์ง์ญ, age์๋ ๋์ด๊ฐ ๋ค์ด๊ฐ๋ค. ์ด๋ฅผ ์์ ํจ์์ ํ๋ผ๋ฏธํฐ ์ฐ์ ์์๋ก ๋ณด๋ฉด,
name์ Regular Positional Arguments
์ด๊ณ ,
args๋ Variable Length Positional Arguments
,
age๋ Regular Positional Arguments
๋ก ์ ์๋ฅผ ํ๋ ์ ์์๋ ๋ฌธ์ ๊ฐ ์์ง๋ง,
ํธ์ถ์ ํ ๋ ์ ๋ ฅ๊ฐ์ด ๋ช๊ฐ์ธ์ง ๋ชจ๋ฅผ๋ ์ฌ์ฉํ๋ *args๊ฐ ์ ๋ ฅ๊ฐ์ ๋ฒํธ, ์์ธ ๊ทธ๋ฆฌ๊ณ 20๊น์ง ๋ฐ์๋ค์ฌ ๊ฐ๋ณ์ ๊ฐ์ผ๋ก ๋ฐ์๋ค์ฌ, ์ ์ age์๊ฒ ๋ค์ด๊ฐ ๊ฐ์ด ์์ด์ ์๋ฌ๊ฐ ์๊ธด๋ค.
- ํด๊ฒฐ ๋ฐฉ๋ฒ
# 1. age= 20 ํค์๋๋ฅผ ๋ง๋ฌ.
# Regular Positional Arguments ๋ค์ Variable Length Positional Arguments ๋ค์ Non-Default Keyword-Only Arguments
func_param_with_var_args("์ ์ฐ์ฑ", "01012341234", "seoul", age = 20)
# 2.age์ ์์๋ฅผ ๋ฐ๊พผ๋ค.
# -> Regular Positional Arguments ๋จผ์ ์ถ๋ ฅํ๊ณ , Variable Length Positional Arguments
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")
ํค์๋ = ๊ฐ
ํํ๋ก ํจ์๋ฅผ ํธ์ถํ๊ณ , ๋ํธ ํํ 'key' : 'value'
๋ก ํจ์ ๋ด๋ถ์ ์ ๋ฌํ๋ค. 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")
#์ค๋ฅ ๋ฐ์
# ์ฐธ๊ณ ๋ก ๋ํดํธ๊ฐ ์์ด๋ ํค์๋๊ฐ ๋ค์ด์ฌ ์ ์์.
โก๏ธ name์ Regulal Positional Arguments
,
age๋ Regular Positional Arguments
,
**kwargs๋ Variable Length Keyword Arguments
,
address๋ Keyword-Only Arguments With Defauls
.
๋ฐ๋ผ์ variable length keyword arguments
๊ฐ Keyword-Only Arguments With Defauls
๋ณด๋ค ์์ ์์ผ๋ฏ๋ก ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
- ํด๊ฒฐ๋ฐฉ๋ฒ
# 1. **kwargs๋ฅผ ๋งจ ๋ค์ ๋๋๋ค.
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", mobile="01012341234", address="seoul")
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")
#์ค๋ฅ ๋ฐ์
โก๏ธ ์์๋ฅผ ๋ณด๋ฉด
name="์์ด์ " ๋ Default Arguments
,
*args๋ Variable Length Positional Arguments
,
age๋ Regular Positional Arguments
,
**kwargs๋ Variable Length Keyword Arguments
,
address๋ Non-Default Keyword-Only Arguments
- ํด๊ฒฐ ๋ฐฉ๋ฒ
์๋ฅผ ํ๋ผ๋ฏธํฐ์ ์ฐ์ ์์ ์์ผ๋ก ๋ฐ๊พผ๋ค.
์ฆ age, name="์์ด์ ", *args, address, **kwargs ์์
# ํ๋ผ๋ฏธํฐ์ ์ฐ์ ์์๋๋ก ์์น๋ฅผ ๋ฐ๊ฟ
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" ,mobile="01012341234", address="seoul")
# ์ ์ ์ถ๋ ฅ!!!!!