ν΄λμ€μ νΉμ λ©μλ
νμ΄μ¬μμ νΉμ λ©μλ(Special Methods)
λ ν΄λμ€ λ΄λΆμμ 미리 μ μλ νΉλ³ν λ©μλλ‘, κ°μ²΄μ λμμ μ μνκ³ νμ΄μ¬μ λ΄μ₯ ν¨μμμ μνΈμμ©μ λμ΅λλ€.
μ΄ λ©μλλ€μ λ§€μ§ λ©μλ(Magic method)
λΌκ³ λ λΆλ¦¬λ©°, λ°μ€ 2κ°(__
, )λ‘ μμνκ³ λλ©λλ€.
μλ₯Ό λ€μ΄ (__str__)
λ‘ κ°μ²΄λ₯Ό λ¬Έμμ΄λ‘ νννκ±°λ, (__eq__)
λ‘ λ κ°μ²΄λ₯Ό λΉκ΅νλ λ±μ μμ
μ μνν μ μμ΅λλ€.
νΉμ λ©μλ μ¬μ© μμ
μλ μ½λ μμλ __str__
κ³Ό __eq__
νΉμ λ©μλλ₯Ό μ¬μ©ν΄ Book
ν΄λμ€λ₯Ό μ μν©λλ€.
__str__
λ©μλλ κ°μ²΄μ λ¬Έμμ΄ ννμ μ μνλ νΉμ λ©μλλ‘, print
ν¨μλ str
ν¨μλ‘ κ°μ²΄λ₯Ό λ¬Έμμ΄λ‘ λ³νν λ νΈμΆλ©λλ€.
μΌλ°μ μΌλ‘ __str__
λ©μλλ κ°μ²΄μ μ 보λ₯Ό μ¬λμ΄ μ½κΈ° μ’μ νμμΌλ‘ λνλ΄κΈ° μν΄ μ¬μ©ν©λλ€.
__eq__
λ©μλλ κ°μ²΄μ λλ±μ± λΉκ΅λ₯Ό μ μνλ νΉμ λ©μλλ‘, λ κ°μ²΄λ₯Ό λΉκ΅νλ ==
μ°μ°μλ₯Ό νΈμΆν λ μ€νλ©λλ€.
# ν΄λμ€ Book μ μ class Book: # μ΄κΈ°ν λ©μλ def __init__(self, title, author): self.title = title # μ± μ λͺ© self.author = author # μ μ μ΄λ¦ # __str__ λ©μλ: κ°μ²΄λ₯Ό μ¬λμ΄ μ½κΈ° μ’μ λ¬Έμμ΄λ‘ λ³ν def __str__(self): return f"{self.title} by {self.author}" # λ¬Έμμ΄ ν¬λ§·ν μΌλ‘ λ°ν # __eq__ λ©μλ: λ κ°μ²΄κ° κ°μμ§ λΉκ΅ (titleκ³Ό author κΈ°μ€) def __eq__(self, other): # λ κ°μ²΄μ titleκ³Ό authorκ° κ°μΌλ©΄ True, μλλ©΄ False return self.title == other.title and self.author == other.author print(book1 == book3) # False
μ΄ μμ μμ __str__
λ©μλλ κ°μ²΄λ₯Ό μ¬λμ΄ μ½κΈ° μ’μ λ¬Έμμ΄λ‘ λ³ννκ³ , __eq__
λ©μλλ λ κ°μ²΄μ title
κ³Ό author
κ° κ°μμ§ λΉκ΅ν©λλ€.
μμ κ°μ Book
ν΄λμ€λ μλμ κ°μ΄ μ¬μ©ν μ μμ΅λλ€.
# Book κ°μ²΄ μμ± book1 = Book("ν΄λ¦¬ν¬ν°", "J.K. λ‘€λ§") book2 = Book("ν΄λ¦¬ν¬ν°", "J.K. λ‘€λ§") book3 = Book("λ°μ§μ μ μ", "J.R.R. ν¨ν¨") # __str__ λ©μλ μμ: κ°μ²΄λ₯Ό printν λ μ¬λμ΄ μ½κΈ° μ’μ νμμΌλ‘ μΆλ ₯ print(book1) # "ν΄λ¦¬ν¬ν° by J.K. λ‘€λ§" μΆλ ₯ # __eq__ λ©μλ μμ: κ°μ²΄ λΉκ΅ print(book1 == book2) # True, λ κ°μ²΄μ titleκ³Ό authorκ° λμΌ print(book1 == book3) # False, λ€λ₯Έ titleκ³Ό author # Book κ°μ²΄λ₯Ό 리μ€νΈλ‘ κ΄λ¦¬ book_list = [book1, book2, book3] # 리μ€νΈμ μλ μ± μ 보 μΆλ ₯ (λͺ¨λ κ°μ²΄μ __str__ λ©μλκ° μ μ©λ¨) for book in book_list: print(book) # κ²°κ³Ό: # ν΄λ¦¬ν¬ν° by J.K. λ‘€λ§ # ν΄λ¦¬ν¬ν° by J.K. λ‘€λ§ # λ°μ§μ μ μ by J.R.R. ν¨ν¨
μ μ½λμμ book1
, book2
, book3
λ Book
ν΄λμ€μ μΈμ€ν΄μ€μ
λλ€.
__str__
λ©μλλ₯Ό μ μνλ©΄ print(book1)
κ³Ό κ°μ΄ κ°μ²΄λ₯Ό μΆλ ₯ν λ μ¬λμ΄ μ½κΈ° μ’μ νμμΌλ‘ μΆλ ₯ν μ μμ΅λλ€.
__eq__
λ©μλλ₯Ό μ μνλ©΄ book1 == book2
μ κ°μ΄ λ κ°μ²΄λ₯Ό λΉκ΅ν λ title
κ³Ό author
κ° κ°μμ§ λΉκ΅ν μ μμ΅λλ€.
νΉμ λ©μλλ μ΄λ€ κ²μ΄ μμκΉμ?
-
__str__(self)
: κ°μ²΄λ₯Ό λ¬Έμμ΄λ‘ ννν λ μ¬μ©λ©λλ€.print()
ν¨μλstr()
ν¨μκ° νΈμΆλ λ μ€νλ©λλ€. -
__eq__(self, other)
:==
μ°μ°μλ₯Ό μ¬μ μνμ¬ κ°μ²΄ κ°μ λλ±μ± λΉκ΅λ₯Ό μ μν©λλ€. -
__ne__(self, other)
:!=
μ°μ°μλ₯Ό μ¬μ μνμ¬ κ°μ²΄ κ°μ μ°¨μ΄μ μ λΉκ΅ν©λλ€. -
__gt__(self, other)
:>
μ°μ°μλ₯Ό μ¬μ μνμ¬ κ°μ²΄ κ°μ ν¬κΈ° λΉκ΅λ₯Ό μ μν©λλ€. -
__ge__(self, other)
:>=
μ°μ°μλ₯Ό μ¬μ μνμ¬ κ°μ²΄ κ°μ ν¬κΈ° λΉκ΅λ₯Ό μ μν©λλ€. -
__lt__(self, other)
:<
μ°μ°μλ₯Ό μ¬μ μνμ¬ κ°μ²΄ κ°μ ν¬κΈ° λΉκ΅λ₯Ό μ μν©λλ€. -
__le__(self, other)
:<=
μ°μ°μλ₯Ό μ¬μ μνμ¬ κ°μ²΄ κ°μ ν¬κΈ° λΉκ΅λ₯Ό μ μν©λλ€.
νΉμ λ©μλλ ν΄λμ€ λ΄λΆμμ 미리 μ μλ νΉλ³ν λ©μλλ‘, κ°μ²΄μ λμμ μ μνκ³ νμ΄μ¬μ λ΄μ₯ ν¨μμμ μνΈμμ©μ λλλ€.
Guidelines
AI Tutor
Publish
Design
Upload
Notes
Favorites
Help
Code Editor
Execution Result