
νμ΄μ¬μμ μ€λ₯λ₯Ό λ°μμν€λ λ°©λ²μλ μ¬λ¬ κ°μ§κ° μμ§λ§,
κ°μ₯ μμ£Ό μ¬μ©λλ κ²μ΄ assert μ raise μ
λλ€.
λμ λΉμ·ν΄ 보μ΄μ§λ§ μ©λμ λμ λ°©μμ΄ λ€λ¦
λλ€.
μ΄ κΈμμλ assertμ raiseμ μ°¨μ΄, μν©λ³ μ¬μ©λ², κ·Έλ¦¬κ³ μ€μ μμ λ₯Ό ν΅ν΄ κ°λ
μ μ 리ν©λλ€.
assert 쑰건, "μλ¬ λ©μμ§"AssertionErrorλ₯Ό λ°μμν΅λλ€.x = 10
assert x > 0, "xλ μμμ¬μΌ ν©λλ€" # β
ν΅κ³Ό
assert x < 0, "xλ μμμ¬μΌ ν©λλ€" # β AssertionError: xλ μμμ¬μΌ ν©λλ€
python -O (μ΅ν°λ§μ΄μ¦ λͺ¨λ) λ‘ μ€ννλ©΄ assertκ° λ¬΄μλ©λλ€.raise μμΈ("μλ¬ λ©μμ§")ValueError, TypeError, μ¬μ©μ μ μ μμΈ λ±)κ³Ό ν¨κ» μ¬μ© κ°λ₯.x = -5
if x < 0:
raise ValueError("xλ μμμΌ μ μμ΅λλ€") # β ValueError: xλ μμμΌ μ μμ΅λλ€
try-exceptμ ν¨κ» μ¬μ© κ°λ₯.| κ΅¬λΆ | assert | raise |
|---|---|---|
| λͺ©μ | λλ²κΉ μ© μ‘°κ±΄ κ²μ¬ | λͺ μμ μΌλ‘ μμΈ λ°μ |
| μμΈ νμ | νμ AssertionError | λ€μν μμΈ(ValueError, TypeError, μ¬μ©μ μ μ μμΈ) |
| μ€ν νκ²½ | μ΅μ ν λͺ¨λ(-O)μμ λΉνμ±νλ¨ | νμ μ€νλ¨ |
| μ¬μ© μκΈ° | λλ²κΉ , ν μ€νΈ | νλ‘λμ μ½λ, μμΈ μ²λ¦¬ λ‘μ§ |
λ κ°λ μ μνΈ λ³΄μμ μΌλ‘ μ¬μ©ν μ μμ΅λλ€.
assertλ‘ λΉ λ₯Έ κ²μ¦raiseλ‘ λͺ
μμ μμΈ μ²λ¦¬def process_value(x):
assert isinstance(x, int), "xλ int νμ
μ΄μ΄μΌ ν©λλ€" # λλ²κΉ
μ©
if x < 0:
raise ValueError("xλ μμμΌ μ μμ΅λλ€") # νλ‘λμ
μ©
return x * 2
print(process_value(5)) # β
10
print(process_value(-3)) # β ValueError
μμ λ°°μ΄ isinstanceλ₯Ό νμ©νλ©΄ νμ
κ²μ¦μ΄ λ λͺ
νν©λλ€.
def greet(name):
assert isinstance(name, str), "nameμ λ¬Έμμ΄μ΄μ΄μΌ ν©λλ€" # λλ²κΉ
μμλ§ μ²΄ν¬
return f"Hello, {name}!"
assertλ₯Ό μ΄μ©ν΄ eval(repr(obj)) == obj κ΄κ³λ₯Ό νμΈν©λλ€.
a = '\x07'
b = eval(repr(a))
assert a == b # β
True β repr κ²°κ³Όλ‘ λ³΅μ κ°λ₯
assertλ μ΄ κ΄κ³κ° νμ μ°ΈμΈμ§ νμΈνλ λλ²κΉ
μμ μ₯μΉ μν μ ν©λλ€.class CustomError(Exception):
pass
def check_value(x):
if x != 42:
raise CustomError("μ λ΅μ 42μ¬μΌ ν©λλ€!")
check_value(10) # β CustomError λ°μ
β
assert
β λλ²κΉ
μ©μΌλ‘ 쑰건μ νμΈ, μ€ν¨ μ AssertionError λ°μ
β νλ‘λμ
μμλ λΉνμ±νλ μ μμΌλ μ£Όμ
β
raise
β λͺ
μμ μΌλ‘ μμΈ λ°μ, λ€μν μμΈ νμ
μ¬μ© κ°λ₯
β μ΄μ νκ²½μμλ νμ μλ β μμΈ μ²λ¦¬μ ν΅μ¬