νμ΄μ¬ κ³ κΈ κΈ°λ₯
β’
ν΄λ‘μ
β’
λ°μ½λ μ΄ν°
β’
μ΄ν°λ μ΄ν°
β’
μ λλ μ΄ν°
β’
μ΄λ
Έν
μ΄μ
ν΄λ‘μ
ν¨μ λ΄λΆμμ μ μλ ν¨μμμ μΈλΆ ν¨μμ λ³μμ μ κ·Όν μ μλ ν¨μ
ν¨μ λ΄λΆμμ μ μλ λ΄λΆ ν¨μκ° μΈλΆ ν¨μμ λ³μλ₯Ό κΈ°μ΅νκ³ μ¬μ©νλ κΈ°λ₯. μΈλΆ ν¨μμ λ³μκ° μλ©Έλμ΄λ λ΄λΆ ν¨μκ° ν΄λΉ λ³μμ μ κ·Ό κ°λ₯.
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
볡μ¬