https://docs.python.org/3/whatsnew/3.8.html
์์น ์ ์ฉ ๋งค๊ฐ ๋ณ์
์ผ๋ถ ํจ์ ๋งค๊ฐ ๋ณ์๋ฅผ ์์น์ ์ผ๋ก ์ง์ ํด์ผ๋ง ํ๊ณ ํค์๋ ์ธ์๋ก ์ฌ์ฉํ ์ ์๋๋ก ์ง์ํ๋ ์๋ก์ด ํจ์ ๋งค๊ฐ ๋ณ์ ๋ฌธ๋ฒ / ์ด ์์ต๋๋ค. ์ด๊ฒ์ Larry Hastings์ Argument Clinic ๋๊ตฌ๋ก ์ด๋ ธํ ์ดํธ๋ C ํจ์๋ค์ ๋ํด help()๊ฐ ๋ณด์ฌ์ฃผ๋ ๊ฒ๊ณผ ๊ฐ์ ํ๊ธฐ๋ฒ์ ๋๋ค.
๋ค์ ์์์, ๋งค๊ฐ ๋ณ์ a์ b๋ ์์น ์ ์ฉ์ด๋ฉฐ, c๋ d๋ ์์น๋ ํค์๋์ผ ์ ์์ผ๋ฉฐ, e๋ f๋ ํค์๋ ์ ์ฉ์ด์ด์ผ ํฉ๋๋ค:
def f(a, b, /, c, d, *, e, f):
print(a, b, c, d, e, f)
๋ค์์ ์ ํจํ ํธ์ถ์ ๋๋ค:
f(10, 20, 30, d=40, e=50, f=60)
ํ์ง๋ง, ๋ค์์ ์๋ชป๋ ํธ์ถ์ ๋๋ค:
f(10, b=20, c=30, d=40, e=50, f=60) # b cannot be a keyword argument
f(10, 20, 30, 40, 50, f=60) # e must be a keyword argument
์ด ํ๊ธฐ๋ฒ์ ํ ๊ฐ์ง ์ฌ์ฉ ์ฌ๋ก๋ ์์ ํ์ด์ฌ ํจ์๊ฐ ๊ธฐ์กด C ์ฝ๋ ํจ์์ ๋์์ ์์ ํ ํ๋ด ๋ผ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ด์ฅ divmod() ํจ์๋ ํค์๋ ์ธ์๋ฅผ ํ์ฉํ์ง ์์ต๋๋ค:
def divmod(a, b, /):
"Emulate the built in divmod() function"
return (a // b, a % b)
# '/' ์ด ํ์ ํ๋ผ๋ฏธํฐ๋ ์์น(์ด๋๋ ์๊ด์์), ํค์๋(args๋ kwargs) ์ผ ์ ์๋ค.
# '*' ์ด ํ์ ํ๋ผ๋ฏธํฐ๋ ํค์๋์ฌ์ผ ํ๋ค.
'๐ Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
python GPU memory print (0) | 2022.12.27 |
---|---|
[python 3.8-] Print Format (0) | 2022.06.13 |
[Code-Server] ์ฝ๋ ์๋ฒ์์ ์ฃผํผํฐ ๋ ธํธ๋ถ ์ฌ์ฉํ๊ธฐ (0) | 2021.07.11 |
[Code-Server] import-im6.q16: unable to open X server ์๋ฌ (0) | 2021.07.11 |
[Jupyter Notebook] ์ฃผํผํฐ ๋ ธํธ๋ถ ์ ์คํฌ๋ฆฝํธ ๋๋น ์กฐ์ (cell script option), ํ๋ค์ค ๋๋น ์กฐ์ (0) | 2021.03.21 |