Search

λ§€κ°œλ³€μˆ˜

β€’
μœ„μΉ˜ λ§€κ°œλ³€μˆ˜
β€’
ν‚€μ›Œλ“œ λ§€κ°œλ³€μˆ˜
β€’
κΈ°λ³Έ λ§€κ°œλ³€μˆ˜
β€’
κ°€λ³€ λ§€κ°œλ³€μˆ˜
β€’
ν‚€μ›Œλ“œ μ „μš© λ§€κ°œλ³€μˆ˜
ꡬ뢄
μ •μ˜ 방식
νŠΉμ§•
μ˜ˆμ‹œ 호좜
μœ„μΉ˜ λ§€κ°œλ³€μˆ˜ (Positional)
def func(a, b):
인자의 μˆœμ„œμ— 따라 κ°’ 전달
func(10, 20)
ν‚€μ›Œλ“œ λ§€κ°œλ³€μˆ˜ (Keyword)
def func(a, b):
호좜 μ‹œ 이름=κ°’ ν˜•νƒœλ‘œ 전달, μˆœμ„œ 무관
func(b=20, a=10)
κΈ°λ³Έκ°’(선택) λ§€κ°œλ³€μˆ˜ (Default/Optional)
def func(a, b=5):
값을 μ „λ‹¬ν•˜μ§€ μ•ŠμœΌλ©΄ κΈ°λ³Έκ°’ μ‚¬μš©
func(10) β†’ b=5
κ°€λ³€ μœ„μΉ˜ λ§€κ°œλ³€μˆ˜ (*args)
def func(*args):
μ—¬λŸ¬ 개의 μœ„μΉ˜ 인자λ₯Ό νŠœν”Œλ‘œ μ „λ‹¬λ°›μŒ
func(1, 2, 3) β†’ (1, 2, 3)
κ°€λ³€ ν‚€μ›Œλ“œ λ§€κ°œλ³€μˆ˜ (**kwargs)
def func(**kwargs):
μ—¬λŸ¬ 개의 ν‚€μ›Œλ“œ 인자λ₯Ό dict둜 μ „λ‹¬λ°›μŒ
func(x=1, y=2) β†’ {'x':1,'y':2}
ν‚€μ›Œλ“œ μ „μš© λ§€κ°œλ³€μˆ˜ (Keyword-only)
def func(a, *, b, c=3):
* λ’€ λ§€κ°œλ³€μˆ˜λŠ” 무쑰건 ν‚€μ›Œλ“œ 인자둜만 전달
func(1, b=2)
κ°€λ³€ μœ„μΉ˜ + ν‚€μ›Œλ“œ ν˜Όν•©
def func(a, *args, b=1, **kwargs):
μœ„μΉ˜, κΈ°λ³Έκ°’, κ°€λ³€, ν‚€μ›Œλ“œλ₯Ό μ‘°ν•© κ°€λŠ₯
func(1, 2, 3, b=10, x=99)

μœ„μΉ˜ λ§€κ°œλ³€μˆ˜ (Positional Parameter)

β€’
μˆœμ„œ(μœ„μΉ˜) 에 따라 μΈμžκ°€ μ „λ‹¬λ˜λŠ” λ§€κ°œλ³€μˆ˜
β€’
κΈ°λ³Έ λ§€κ°œλ³€μˆ˜ ν˜•νƒœ
def greet(name, age): print(f"μ•ˆλ…•ν•˜μ„Έμš” {name}λ‹˜, {age}μ‚΄ μ΄μ‹œκ΅°μš”!") # μœ„μΉ˜ 인자 호좜 greet("철수", 20) greet("영희", 25)
Python
볡사

ν‚€μ›Œλ“œ λ§€κ°œλ³€μˆ˜ (Keyword Parameter)

β€’
ν˜ΈμΆœν•  λ•Œ λ§€κ°œλ³€μˆ˜ 이름=κ°’ ν˜•νƒœλ‘œ 전달
β€’
μˆœμ„œμ™€ 상관없이 호좜 κ°€λŠ₯
def greet(name, age): print(f"μ•ˆλ…•ν•˜μ„Έμš” {name}λ‹˜, {age}μ‚΄ μ΄μ‹œκ΅°μš”!") # ν‚€μ›Œλ“œ 인자 호좜 greet(age=30, name="민수")
Python
볡사

κΈ°λ³Έκ°’(선택) λ§€κ°œλ³€μˆ˜ (Default / Optional Parameter)

β€’
λ§€κ°œλ³€μˆ˜μ— 기본값을 μ§€μ •ν•˜λ©΄ μ„ νƒμ μœΌλ‘œ 인자 전달 κ°€λŠ₯
def greet(name, age=20): # age κΈ°λ³Έκ°’ = 20 print(f"{name}λ‹˜μ€ {age}μ‚΄μž…λ‹ˆλ‹€.") greet("영희") # age μƒλž΅ β†’ κΈ°λ³Έκ°’ μ‚¬μš© greet("철수", 25) # age 직접 μ§€μ •
Python
볡사

κ°€λ³€ μœ„μΉ˜ λ§€κ°œλ³€μˆ˜ (*args)

β€’
μ—¬λŸ¬ 개의 μœ„μΉ˜ 인자λ₯Ό 받을 수 있고, νŠœν”Œ(tuple) 둜 전달됨
def show_numbers(*args): print("args =", args) show_numbers(1, 2, 3, 4)
Python
볡사

κ°€λ³€ ν‚€μ›Œλ“œ λ§€κ°œλ³€μˆ˜ (**kwargs)

β€’
μ—¬λŸ¬ 개의 ν‚€μ›Œλ“œ 인자λ₯Ό 받을 수 있고, λ”•μ…”λ„ˆλ¦¬(dict) 둜 전달됨
def show_info(**kwargs): print("kwargs =", kwargs) show_info(name="철수", age=20, city="μ„œμšΈ")
Python
볡사

ν‚€μ›Œλ“œ μ „μš© λ§€κ°œλ³€μˆ˜ (Keyword-only Parameter)

β€’
ν•¨μˆ˜ μ •μ˜μ—μ„œ * 뒀에 μ˜€λŠ” λ§€κ°œλ³€μˆ˜λŠ” 무쑰건 ν‚€μ›Œλ“œ 인자둜만 ν˜ΈμΆœν•΄μ•Ό 함
첫 번째 μΈμžλŠ” μœ„μΉ˜ λ§€κ°œλ³€μˆ˜ 이고,
* 뒀에 μ˜€λŠ” λ§€κ°œλ³€μˆ˜λ“€μ€ ν‚€μ›Œλ“œ λ§€κ°œλ³€μˆ˜λ‘œλ§Œ μ‚¬μš©
def order(item, *, size="M", quantity=1): print(f"μ£Όλ¬Έ: {item}, μ‚¬μ΄μ¦ˆ={size}, μˆ˜λŸ‰={quantity}") order("ν”Όμž", size="L", quantity=2) # βœ… 정상 # order("ν”Όμž", "L", 2) # ❌ 였λ₯˜
Python
볡사
λͺ¨λ“  μΈμžκ°€ ν‚€μ›Œλ“œ λ§€κ°œλ³€μˆ˜λ‘œ 무쑰건 μ‚¬μš©μ΄ λ˜μ–΄μ•Όν•œλ‹€.
def order(*, item, size="M"): print(item, size) # 호좜 order(item="ν”Όμž") # βœ… κ°€λŠ₯ order("ν”Όμž") # ❌ 였λ₯˜, μœ„μΉ˜ 인자 전달 λΆˆκ°€
Python
볡사

κ°€λ³€ μœ„μΉ˜ + ν‚€μ›Œλ“œ ν˜Όν•©

β€’
*args와 **kwargsλ₯Ό ν•¨κ»˜ μ‚¬μš©ν•˜λ©΄ μœ„μΉ˜/ν‚€μ›Œλ“œ 인자λ₯Ό λͺ¨λ‘ μœ μ—°ν•˜κ²Œ 받을 수 있음
def demo_func(a, b=2, *args, c=10, **kwargs): print("a =", a) print("b =", b) print("args =", args) print("c =", c) print("kwargs =", kwargs) demo_func(1, 5, 6, 7, c=99, d=100, e=200)
Python
볡사