Thursday_June_25
.
.
.
์ด๋ฒ ๋ฌธ๋ฒ ์๋ฌ๋ ์ญ์ ๋จผ์ ์์์ผ ํ ๊ฐ๋
์ด ์๋ค.
๋ง ๊ทธ๋๋ก ๊ธฐ๋ณธ๊ฐ์ด ์๋ Parameter๋ฅผ ์๋ฏธํ๋ค.
def test(num1, num2): print(num1, num2)
์์ ์์ ์์๋ num1๊ณผ num2๊ฐ ๊ฐ์ด ์๊ธฐ ๋๋ฌธ์,
ํจ์ ํธ์ถ ์์ ๊ผญ Argument๋ก ๋ฃ์ด์ค์ผ ํ๋ค.
๋ฃ์ด์ฃผ์ง ์์ผ๋ฉด ํจ์๊ฐ ์๋์ ์ํ๋ค.์์ Function ์ด๋ผ๋ ๊ธ์ ์ผ์๋๋ฐ, Input๊ณผ Output์
์ต์ ์ด๋ผ๊ณ ๋ง์ ํ๋๋ฐ, ์ฌ๊ธฐ์ Input์ด ํ์์ธ ๊ฒ์ด๋ค.
๊ธฐ๋ณธ๊ฐ์ ๊ฐ์ง๊ณ ์๋ Parameter๋ฅผ ์๋ฏธํ๋ค.
def test2(num1 = 1, num2 = 2): print(num1, num2)
์ผ๋จ ์ฌ๊ธฐ์๋ Input์ด ํ์๋ ์๋ ๊ฒ์ด๋ค.
์๋ํ๋ฉด Default ๊ฐ์ด ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ํ์๋ก ์ฃผ์ง ์์๋
num1์ 1๋ก, num2๋ 2๋ก ๊ฐ์ด ์ ์ฉ๋ผ ์ถ๋ ฅ๊ฐ์ผ๋ก1 2
์ด๋ ๊ฒ ๋์ค๊ฒ ๋๋ค.
๋จผ์ ์ด ์ฌ์ง์ ๋ณด๋ฉด์ ๊ฐ Parameter์ ์์น์ ๋ฌด์จ ๊ฐ๋ค์ ์ค์ผํ๋์ง ์๋ฒฝํ ์ดํดํ๋๋ฐ 10์๊ฐ์ ์ฝ์งํ๋ค.
์ด๋ค ๋ฌธ์ ๋ฅผ ์ค๋ ๋ฌด์จ ๊ฐ์ด ๋์ฌ์ง, ์ด๋ค ์๋ฌ ๋๋ฌธ์ ์คํ์ด ์ ๋ ์ง ๊ฐ๋ ์ ๋น ์น ์ตํ๋ค
์ผ๋จ ๋ถ์ ์์ ๋ง ํ๋ฏ, default(value parameter๋ ์๋ต)๋ non-default ์์ ์ค๋ฉด ์๋๋ค.
์๋ฅผ ๋ค์ด๋ณด์.
def test(a = 1, b = 2, c, d): print(a) print(b) print(c) print(d) test2(5, 9)
๋ง์ฝ ์ด๋ ๊ฒ test๋ ํจ์๋ฅผ ์ ์ํ๊ณ ,
a์ b๋ผ๋ Parameter๋ default,
c์ d๋ผ๋ Parameter๋ non-default ์ํ์ด๋ค.๊ทธ๋ฐ๋ฐ ๋ง์ฝ ์ฌ๊ธฐ์ ์์ ๋ฐฐ์ด Positional Arguments ๋ฐฉ์์ผ๋ก
5์ 9๋ฅผ ๋๊ฒจ์ฃผ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.โ๏ธ SyntaxError: non-default argument follows default argument
์ฌ์ค testํจ์์ ํธ์ถ ๋ถ๋ถ์๋ ๋ฌธ์ ๊ฐ ์์ง๋ง,
์ฒซ ๋ฒ์งธ ์ค์ธ ์ ์ ๋ถ๋ถ์์ ๋ถํฐ ๋ฌธ๋ฒ ์๋ฌ๊ฐ ๋๋ ๊ฒ์ด๋ค.default๊ฐ non-default ์์ ์์ ๋จ๋ ์๋ฌ์ธ๋ฐ,
์ ์ฌ์ง์ ๋ณด๋ฉด ์ ์ ์์ง๋ง, ํจ์์ Parameter ๋ฌธ๋ฒ์ non-default๊ฐ
์์ ์์ผ ํ๋ค.ํ์ง๋ง ๋ฌด์กฐ๊ฑด ์๋๋๊ฑด ์๋๋ค. ์์ ์ฌ์ง์ ๋์์๋ ๊ฐ Parameter์ ์ข ๋ฅ์ ์์น๋ฅผ ์ ์ตํ๋ฉด ๋ฌด์กฐ๊ฑด default๊ฐ non-default ์์ ์ค๋ฉด ์๋๋ค๋ ๊ฒ์ด ์๋๋ผ๋ ๊ฒ์ ์ ์ ์๋ค.
10์๊ฐ์ ์ฝ์ง ๋์ ์ป์ด๋ธ ๊ฟ ๐ฏ ํ์ ์๋ ค์ฃผ๊ฒ ๋ค.
def test2(a = 1, b = 2, *args, c, d): print(a) print(b) print(tuple) print(c) print(d)
์ด๋ ๊ฒ ์ฌ์ด์ Variable Length Positional Arguments๋ฅผ ์ฃผ๋ฉด ๋๋ค.
๋ง๋ก ์ค๋ช ํ๊ธฐ ํ๋ค์ง๋ง, ์ฌ์ง์ ํ ๋๋ก ์ค๋ช ์ ํ์๋ฉด,
์ด ์์ค ์ฝ๋์์์ a์ b๋ default์ง๋ง, Positionalํ
Parameter์ ๋ถ๋ถ์ ์๋ ๊ฒ์ด๊ณ , c์ d๋ Keyword Argument ๋ฐฉ์์ผ๋ก
์ค์ผํ๋ Parameter ๋ถ๋ถ์ ์๊ธฐ ๋๋ฌธ์, ์ด๋ฐ ๊ฒฝ์ฐ์๋ ๊ฐ๋ฅํ๋ค.๊ทธ๋ฆฌ๊ณ ์์ง ์ค๋ช ์ ์ํ์ง๋ง, args๋ผ๋ Parameter๋ ๊ฐ์ ์ค๋, ์ ์ค๋
๋๋ค.์๋ฌดํผ ์์ ํจ์๋ ์ ์ํ๋๋ฐ์ ์์ด์๋ ์๋ฌ๊ฐ ์๊ณ ,
ํธ์ถ ์์ ์๋ฌ๊ฐ ์๊ฒ ํ๋ ค๋ฉด, c์ d์๋ง Keyword Argument ๋ฐฉ์์ผ๋ก
์ฃผ๋ฉด ์๋ฌ๊ฐ ์๋ค.์์ a์ b๋ Positionalํ๊ฒ ๊ฐ์ ์ฃผ์ด๋ ๋๊ณ , Keyword ๋ฐฉ์์ผ๋ก ์ฃผ์ด๋ ๋๋ค.
ใ ใ ๊ฐ์ฌํฉ๋๋ค