Search

파이썬 κ³ κΈ‰ κΈ°λŠ₯

파이썬 κ³ κΈ‰ κΈ°λŠ₯

β€’
ν΄λ‘œμ €
β€’
λ°μ½”λ ˆμ΄ν„°
β€’
μ΄ν„°λ ˆμ΄ν„°
β€’
μ œλ„ˆλ ˆμ΄ν„°
β€’
μ–΄λ…Έν…Œμ΄μ…˜

ν΄λ‘œμ €

ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ μ •μ˜λœ ν•¨μˆ˜μ—μ„œ μ™ΈλΆ€ ν•¨μˆ˜μ˜ λ³€μˆ˜μ— μ ‘κ·Όν•  수 μžˆλŠ” ν•¨μˆ˜
ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ μ •μ˜λœ λ‚΄λΆ€ ν•¨μˆ˜κ°€ μ™ΈλΆ€ ν•¨μˆ˜μ˜ λ³€μˆ˜λ₯Ό κΈ°μ–΅ν•˜κ³  μ‚¬μš©ν•˜λŠ” κΈ°λŠ₯. μ™ΈλΆ€ ν•¨μˆ˜μ˜ λ³€μˆ˜κ°€ μ†Œλ©Έλ˜μ–΄λ„ λ‚΄λΆ€ ν•¨μˆ˜κ°€ ν•΄λ‹Ή λ³€μˆ˜μ— μ ‘κ·Ό κ°€λŠ₯.
def outer_func(x): def inner_func(y): return x + y return inner_func add_five = outer_func(5) print(add_five(3)) # 좜λ ₯: 8
Python
볡사

λ°μ½”λ ˆμ΄ν„°

λ‹€λ₯Έ ν•¨μˆ˜λ₯Ό λ°›μ•„ κ·Έ ν•¨μˆ˜μ˜ κΈ°λŠ₯을 ν™•μž₯ν•˜κ±°λ‚˜ μˆ˜μ •ν•  수 μžˆλŠ” ν•¨μˆ˜
ν•¨μˆ˜μ˜ κΈ°λŠ₯을 μˆ˜μ •ν•˜κ±°λ‚˜ μΆ”κ°€ν•  λ•Œ κΈ°μ‘΄ μ½”λ“œλ₯Ό λ³€κ²½ν•˜μ§€ μ•Šκ³  μ‚¬μš©ν•  수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” κΈ°λŠ₯
def my_decorator(func): def wrapper(): print("Something is happening before the function is called.") func() print("Something is happening after the function is called.") return wrapper @my_decorator def say_hello(): print("Hello!") say_hello()
Python
볡사

μ΄ν„°λ ˆμ΄ν„°

순회 κ°€λŠ₯ν•œ κ°μ²΄μ—μ„œ μš”μ†Œλ₯Ό ν•˜λ‚˜μ”© μ°¨λ‘€λ‘œ λ°˜ν™˜ν•  수 μžˆλŠ” 객체
__iter__()와 __next__() λ©”μ„œλ“œλ₯Ό κ΅¬ν˜„ν•œ 객체둜, λ°˜λ³΅λ¬Έμ—μ„œ μ‚¬μš©λ  수 있음.
my_list = [1, 2, 3] iter_obj = iter(my_list) print(next(iter_obj)) # 좜λ ₯: 1 print(next(iter_obj)) # 좜λ ₯: 2
Python
볡사

μ œλ„ˆλ ˆμ΄ν„°

μ΄ν„°λ ˆμ΄ν„°λ₯Ό μƒμ„±ν•˜λŠ” ν•¨μˆ˜. yield ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ 값을 λ°˜ν™˜ν•˜κ³  μƒνƒœλ₯Ό μœ μ§€
값을 순차적으둜 μƒμ„±ν•˜κ³  λ©”λͺ¨λ¦¬λ₯Ό 효율적으둜 μ‚¬μš©ν•¨.
def my_generator(): yield 1 yield 2 yield 3 gen = my_generator() print(next(gen)) # 좜λ ₯: 1 print(next(gen)) # 좜λ ₯: 2
Python
볡사

μ–΄λ…Έν…Œμ΄μ…˜

νƒ€μž… μ–΄λ…Έν…Œμ΄μ…˜

ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜μ™€ λ°˜ν™˜κ°’μ— λŒ€ν•œ νƒ€μž… 정보λ₯Ό μ£Όμ„μœΌλ‘œ μ œκ³΅ν•˜λŠ” κΈ°λŠ₯
νŒŒμ΄μ¬μ€ 동적 μ–Έμ–΄λ‘œ νƒ€μž…(μžλ£Œν˜•)을 λͺ…μ‹œν•˜λŠ” μ–Έμ–΄κ°€ μ•„λ‹ˆλΌμ„œ, νƒ€μž… μ–΄λ…Έν…Œμ΄μ…˜μ„ 톡해 μ½”λ“œμ˜ 가독성을 높이고 νƒ€μž… 검사 도ꡬλ₯Ό ν™œμš©ν•˜μ—¬ μ½”λ“œμ˜ μ•ˆμ •μ„±μ„ 높일 수 μžˆμŠ΅λ‹ˆλ‹€.
주둜 ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜μ™€ λ°˜ν™˜κ°’μ— λŒ€ν•œ νƒ€μž…μ„ μ§€μ •ν•˜λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€.
def ν•¨μˆ˜λͺ…(λ§€κ°œλ³€μˆ˜: νƒ€μž…) -> λ°˜ν™˜κ°’μ˜_νƒ€μž…: # ν•¨μˆ˜μ˜ λ‚΄μš©
Python
볡사
μœ„μ˜ μ˜ˆμ‹œμ—μ„œ λ§€κ°œλ³€μˆ˜λŠ” ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜λ₯Ό λ‚˜νƒ€λ‚΄λ©°, νƒ€μž…μ€ ν•΄λ‹Ή λ§€κ°œλ³€μˆ˜μ˜ νƒ€μž…μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€. λ°˜ν™˜κ°’μ˜_νƒ€μž…μ€ ν•¨μˆ˜κ°€ λ°˜ν™˜ν•˜λŠ” κ°’μ˜ νƒ€μž…μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.
def greet(name: str) -> str: return "Hello, " + name print(greet("Alice")) # 좜λ ₯: Hello, Alice print(greet(123)) # 좜λ ₯: TypeError: Argument 'name' must be str
Python
볡사