๐Ÿธ Function Parameters ๐Ÿธ

18๊ธฐ ์ด์„ฑ๋ชฉยท2021๋…„ 2์›” 28์ผ
0
post-thumbnail

ํ•จ์ˆ˜๋ฅผ ์ •์˜ ํ• ๋•Œ 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๋ฅผ ์ธ์žํ™” ์‹œ์ผฐ๋‹ค.

  1. ๊ฐ€๋ณ€ ํ‚ค์›Œ๋“œ ์ธ์ˆ˜ (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 ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜ ์•ž์— '**'๋ฅผ ๊ผญ ๋”ํ•ด์•ผ ํ•œ๋‹ค.
ํ•จ์ˆ˜์ •์˜์‹œ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ˆœ์„œ์—์„œ ๊ฐ€์žฅ ๋’ค์— ๋ฐฐ์น˜ํ•ด์•ผํ•œ๋‹ค.

  1. ์œ„์น˜ ์ธ์ˆ˜์™€ ํ‚ค์›Œ๋“œ ๊ฐ€๋ณ€ ํ‚ค์›Œ๋“œ ์ธ์ˆ˜ (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")

0๊ฐœ์˜ ๋Œ“๊ธ€