๋ ํผ๋ฐ์ค : https://hwiyong.tistory.com/193
1. ๊ณฑ์ ๊ณผ ๊ฑฐ๋ญ์ ๊ณฑ
โข
๊ตณ์ด ์ฝ๋๋ฅผ ๋ถ์ด์ง ์์๋ ๋ค๋ค ์์ค๊ฑฐ๋ผ๊ณ ์๊ฐํฉ๋๋ค.
โข
1 * 2 = 2
โข
2 ** 2 = 4
2. ๋ฆฌ์คํธ ํ์ฅ
โข
๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ์คํธ๋ฅผ ๊ฐ๋จํ ํ์ฅํ ์ ์์ต๋๋ค.
3. ๊ฐ๋ณ์ธ์
๊ฐ๋ณ์ธ์๋, ์ด๋ฆ ๊ทธ๋๋ก ๊ธธ์ด๊ฐ ๋ณํ ์ ์๋ argument๋ฅผ ๋งํฉ๋๋ค.
์์์ ํจ์์ ์ธ์๋ก ๋ช๊ฐ์ ๋ฐ์ดํฐ๊ฐ ๋ค์ด์ฌ์ง ๋ชจ๋ฅด๊ฒ ๋๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ฉด ํธ๋ฆฌํฉ๋๋ค.
์ด๋ ์ฌ๋ฌ api๋ ์ ์ง์ฌ์ง ์ฝ๋๋ฅผ ๊ตฌ๊ฒฝํ๋ค๋ณด๋ฉด ํจ์์ย *args๋ย **kwargs๋ผ๊ณ ๋์๋ ํํ๋ค์ ๋ง์ด ๋ณผ ์ ์์ต๋๋ค.
์ด๊ฒ ๋ฐ๋ก ๊ฐ๋ณ์ธ์๋ฅผ ์ฌ์ฉํ๊ฒ ๋ค๋ ์๋ฏธ์
๋๋ค. ํ๊ฐ์ ๋๊ฐ์ ์ฐจ์ด๋ positional๊ณผ keyward ์ธ์์ ์ฐจ์ด์
๋๋ค.
์ด๋ฆ๋ง ๋ค์ด์๋ ๋ฏ์ค ์ ์์ง๋ง, ์ฌ์ค ์ด๋ฏธ ์ฌ์ฉํ๊ณ ์์์ง๋ ๋ชจ๋ฆ
๋๋ค. ๊ฐ๊ฐ์ ์๋์ ๊ฐ์ต๋๋ค.
def function(a, b = None):
...
Python
๋ณต์ฌ
์ฌ๊ธฐ์ a๋ย positional arguments, b๋ย keyword arguments๋ผ๊ณ ์นญํฉ๋๋ค. ๋ชจ๋ ์์๋ค์ํผ a๋ ๊ฐ์ด ์๋ ๊ฒฝ์ฐ error๊ฐ ๋จ๊ฒ ๋๋ฉฐ, b๋ default๊ฐ์ผ๋ก None๊ฐ์ ์ฃผ๊ฒ ๋์ฃ .
์๋ ์์ ์ฒ๋ผ args๋ tuple ๋๋ list, kwargs๋ dict์ ์ ์ฅ๋์ด ์ถ๋ ฅ๋๋ ๊ฒ์ ๋ณผ ์ ์์ผ๋ฉฐ, ๋์์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
def args_function(*args):
print(args)
def kwargs_function(**kwargs):
print(kwargs)
args_function('a', 'b') # ('a', 'b')
kwargs_function(a = 100, b = 200) # {'a':100, 'b':200}
Python
๋ณต์ฌ
4. Unpacking
์๊ณ ๋ฆฌ์ฆ์ ์ง๋ค๋ณด๋ฉด ๊ฒฐ๊ณผ๋ถ๋ถ์ ์ถ๋ ฅํ ๋, for-loop๋ฅผ ์ด์ฉํ์ฌ list๋ฅผ ์ํํ๋ฉฐ ์ถ๋ ฅํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
# list unpacking
test = [1, 2, 3, 4]
print(*test) # 1 2 3 4
# tuple unpacking
test = (5, 6, 7, 8)
print(*test) # 5 6 7 8
Python
๋ณต์ฌ
์ด๋ ๊ฒ ์ฌ์ฉํ๋ฉด ์ฝ๋ ๊ธธ์ด๋ ์ค๊ณ ํธ๋ฆฌํ์ฃ ?
๋ค์์ ๊ฐ ๋ณ์ ์ค ํ๋์ ๊ฐ๋ณ์ ์ผ๋ก ํ ๋นํ๊ณ ์ถ์ ๊ฒฝ์ฐ์
๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
test = [1, 2, 3, 4, 5]
*a, b = test
print(a, b) # [1, 2, 3, 4], 5
a, *b, c = test
print(a, b, c) # 1, [2, 3, 4], 5
Python
๋ณต์ฌ