νμ΄μ¬μλ λ€λ₯Έ μΈμ΄μ λ§μ°¬κ°μ§λ‘ λ©μλλΌλ μμμ΄ μ‘΄μ¬νλ€. μ΄μ κ·Έ λ©μλμ λΆλ₯μ μ¬μ©λ²μ λν΄μ μμ보μ.
- Instance Method
- Static Method
- Class Method
Instance Method
μΈμ€ν΄μ€ λ©μλλ κ° κ°μ²΄μμ κ°λ³μ μΌλ‘ λμνλ ν¨μλ₯Ό λ§λ€κ³ μΆμ λ μ¬μ©νλ€.
μλ‘ μλμ°¨λΌλ ν΄λμ€κ° μμλ κΈ°λ³Έ ꡬλ λ©μ»€λμ¦μ λͺ¨λ λμΌνμ§λ§ μλ, μ΄λ¦, μμ λͺ¨λ κ³ μ ν λμκ³Ό μνκ° μλ€.
μ΄λ° κ²½μ°μ κ³ μ ν λμκ³Ό μνλ₯Ό Instance Methodλ₯Ό μ¬μ©νμ¬ μ μνλ€.
self
μΈμ€ν΄μ€ λ©μλμμ 첫 μΈμλ 무쑰건 self ν€μλκ° νμνλ°, μ΄ λ»μ ν΄λμ€μ μΈμ€ν΄μ€(κ°μ±)λ₯Ό λ»νλ―λ‘ selfλ₯Ό ν΅ν΄μ μΈμ€ν΄μ€ λ³μλ₯Ό λ§λ€κ³ μ¬μ©νλ€.
μΈμ€ν΄μ€ λ©μλμ ꡬ쑰
class ν΄λμ€λͺ
():
def ν¨μλͺ
(self, μΈμ1, μΈμ2, ...):
self.λ³μλͺ
1 = μΈμ1
self.λ³μλͺ
2 = μΈμ2
...
<μ½λ>
μΈμ€ν΄μ€ λ©μλμ μ¬μ©λ²
κ°μ±λͺ
= ν΄λμ€λͺ
()
κ°μ²΄λͺ
.λ©μλλͺ
(μΈμ1, μΈμ2, ...)
μμ μμ λ₯Ό 보μλ―μ΄ car1μ κ°μ²΄(μΈμ€ν΄μ€)μ car2μ κ°μ²΄(μΈμ€ν΄μ€)λ μλ‘ λ 립μ μΌλ‘ μμ§μ΄κ² λλ€.
Static Method
μ μ λ©μλλ μΈμ€ν΄μ€ λ©μλμ λ¬λ¦¬ ν΄λμ€, μΈμ€ν΄μ€μλ 무κ΄νκ² λμνλ ν¨μλ₯Ό λ§λ€κ³ μΆμ λ μ¬μ©νλ ν¨μμ΄λ€.
μ΄λ¬ν Static Methodμλ μ¬λ¬ νΉμ§μ΄ μλλ°,
- ν¨μ μ μμ μΈμλ‘ selfλ₯Ό μ¬μ©νμ§ μλλ€.
- Static Method λ΄λΆμμλ Inatance Method, variableμ μ κ·Όν μ μλ€.
- ν¨μ μμ λ°μ½λ μ΄ν°μΈ
@staticmethod
λ₯Ό μ§μ ν΄μ€μΌ νλ€.
μ μ λ©μλμ ꡬ쑰
class ν΄λμ€λͺ
():
@staticmethod
def ν¨μλͺ
(μΈμ1, μΈμ2, ...):
<μ½λ>
μ μ λ©μλμ μ¬μ©λ².
ν΄λμ€λͺ
.λ©μλλͺ
(μΈμ1, μΈμ2, ...)
μμ κ·Έλ¦Όμμ 보λ―μ΄ self μΈμ μμ΄ μΌλ° ν¨μμ²λΌ νμν μΈμλ§ μ¬μ©νλ€.
Class Method
ν΄λμ€ λ©μλλ ν΄λμ€ λ³μλ₯Ό μ¬μ©νκΈ° μν ν¨μμ΄λ€.
ν΄λμ€ λ³μμ νΉμ§μ λν΄ λ§νμλ©΄
- ν¨μμ 첫 λ²μ§Έ μΈμλ
cls
μ΄μ΄μΌ νλ€. - ν΄λμ€ λ©μλλ₯Ό μ¬μ©νκΈ° μν΄μλ λ°μ½λ μ΄ν°μΈ
@classmethod
λ₯Ό μ§μ ν΄μΌ νλ€.
ν΄λμ€ λ©μλμ ꡬ쑰
class ν΄λμ€λͺ
():
@classmethod
def ν¨μλͺ
(cls, μΈμ1, μΈμ2, ...):
<μ½λ>
ν΄λμ€ λ©μλμ μ¬μ©λ².
ν΄λμ€λͺ
.λ©μλλͺ
(μΈμ1, μΈμ2, ...)
λκΈ