1. *args
args(arguments)๋ ๋ด๊ฐ ์ํ๋ ์ฌ๋ฌ๊ฐ์ง ์ธ์๋ค์ ๊ฐ๋ณ์ธ์๋ก ๋ฐ์ ์ ์์ต๋๋ค. ๊ฐ๋ค์ ๋ชจ๋ tuple๋ก ์ ์ฅ๋ฉ๋๋ค.
์
๋ ฅ
def print_args(*args): print(args) for x in args: print(x) print_args(100, True, 'leehojun')
ย
์ถ๋ ฅ
(100, True, 'leehojun') 100 True leehojun
2. **kwargs
**kwargs๋ ๋์
๋๋ฆฌ๋ก ๊ฐ๋ณ์ธ์๋ฅผ ๋ฐ์ ์ ์๋ ๋ฐฉ๋ฒ์
๋๋ค. *arg์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ณ ์ ์ธ์์ ๊ฐ๋ณ์ธ์ ํจ๊ป ์ธ ์ ์์ต๋๋ค.
args(arguments)๋ ํํ ํ์์ผ๋ก ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐ๋ ๋ฐ๋ฉด kwargs(keyworded arguments)๋ ๋์
๋๋ฆฌ ํํ๋ก ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐ์ต๋๋ค.
์
๋ ฅ
def print_kwargs(a, **kwargs): print(a) print(kwargs) for i in kwargs: print(i) print_kwargs(100, name='leehojun', age='10')
ย
์ถ๋ ฅ
100 {'name': 'leehojun', 'age': '10'} name age
3. *args์ **kwargs ์์ฉ
๋ ๋ค ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ์ด๋ป๊ฒ ๋ ๊น์? ์์๋ args์ ํ์์ผ๋ก, ๋ค์๋ kwargsํ์์ผ๋ก ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐ๊ฒ๋๋ฉด ์ ์์ ์ผ๋ก ์๋ํฉ๋๋ค. ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฃ์ ๋ ์์๋ฅผ ๋ฐ๊พธ๊ฑฐ๋ ํผํฉํ๋ฉด ์๋ฌ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
์
๋ ฅ
def print_args_kwargs(*args, **kwargs): print('args:', args) for x in args: print(x) print('kwargs:', kwargs) for x in kwargs: print(x) print(kwargs[x]) print_args_kwargs(100, True, 'leehojun') print('--------') print_args_kwargs(score=100, name='leehojun', age='10') print('--------') print_args_kwargs(100, True, 'leehojun', score=100, name='leehojun', age='10') #print('--------') # print_args_kwargs(100, score=100, True, name='leehojun', 'leehojun', age='10')
ย
์ถ๋ ฅ
args: (100, True, 'leehojun') 100 True leehojun kwargs: {} -------- args: () kwargs: {'score': 100, 'name': 'leehojun', 'age': '10'} score 100 name leehojun age 10 -------- args: (100, True, 'leehojun') 100 True leehojun kwargs: {'score': 100, 'name': 'leehojun', 'age': '10'} score 100 name leehojun age 10
ย
์๋ ์์ ๋ ํ๋ผ๋ฏธํฐ์ ๊ฐ์ ์ ์ธํด์ ๋ณด๋ด๋ ํ์์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ์์ ๋ฟ๋ง ์๋๋ผ ๋ค์ํ๊ฒ ์ค์ตํด ๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
์
๋ ฅ
def print_args_kwargs(*args, **kwargs): print('args:', args) for x in args: print(x) print('kwargs:', kwargs) for x in kwargs: print(x) print(kwargs[x]) inputlist=[100, True, 'leehojun'] inputdic={'score':100, 'name':'leehojun', 'age':'10'} print_args_kwargs(*inputlist) print('--------') print_args_kwargs(**inputdic) print('--------') print_args_kwargs(*inputlist, **inputdic)
ย
์ถ๋ ฅ
args: (100, True, 'leehojun') 100 True leehojun kwargs: {} -------- args: () kwargs: {'score': 100, 'name': 'leehojun', 'age': '10'} score 100 name leehojun age 10 -------- args: (100, True, 'leehojun') 100 True leehojun kwargs: {'score': 100, 'name': 'leehojun', 'age': '10'} score 100 name leehojun age 10
4. ๊ธฐํ *์ ํ์ฉ ๋ฐฉ๋ฒ
๋ฃ์ผ๋ ค๋ ๋ฐ์ดํฐ๊ฐ ๋ณ์์ ๊ฐ์๋ณด๋ค ๋ง์ผ๋ฉด ํ ๋น์ด ๋ถ๊ฐ๋ฅ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์์ ์ดํด๋ณธ ๊ฒ์ฒ๋ผ ์ด๊ณผํ ๋ฐ์ดํฐ๋ฅผ ๋ค ๋ฐ์ ์ ์๋๋ก ๋ณ์ ์์
*
๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๊ณผ๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ถ ๋ด์ ์ ์์ต๋๋ค. ์
๋ ฅ
one, two, *three = 1,2,3,4,5 print(one, two, three)
ย
์ถ๋ ฅ
1 2 [3, 4, 5]
ย