type
: κ³΅ν΅ μμ±μ κ°μ§ κ°μ²΄λ€μ λΆλ₯(class)
class
: κ°μ²΄λ€μ λΆλ₯(class)λ₯Ό μ μν λ μ°μ΄λ ν€μλ
class
ν€μλμ μ μνκ³ μ νλ <ν΄λμ€μ μ΄λ¦>
μΌλ‘ κ°λ₯νλ€.<ν΄λμ€μ μ΄λ¦>
μ PascalCase
λ‘ μ μνλ€.class <ν΄λμ€μ΄λ¦>:
<λ©μλ>
class Person:
pass
print(type(Person))
>> <class 'type'>
class
)μ μνλ κ°μ²΄λ₯Ό ν΄λΉ ν΄λμ€μ μΈμ€ν΄μ€(instance)λΌκ³ νλ€.Person
ν΄λμ€μ μΈμ€ν΄μ€λ Person()
μ νΈμΆν¨μΌλ‘μ¨ μμ±λλ€.type()
ν¨μλ₯Ό ν΅ν΄ μμ±λ κ°μ²΄μ ν΄λμ€λ₯Ό νμΈν μ μλ€.person1
μ μ¬μ©μκ° μ μν(user-defined) Person
μ΄λΌλ λ°μ΄ν° νμ
(data type)μ μΈμ€ν΄μ€μ΄λ€.# μΈμ€ν΄μ€ = ν΄λμ€()
person1 = Person()
print(type(person1))
>> <class '__main__.Person'>
class Person:
# λ©μλ(method)
def talk(self): # μΈμλ‘ selfλ₯Ό λΆμ¬μ€λλ€.
return 'μλ
'
def eat(self, food):
return f'λ λ {food}'
constructor method
μΈμ€ν΄μ€ κ°μ²΄κ° μμ±λ λ νΈμΆλλ ν¨μ
μμ±μλ₯Ό νμ©νλ©΄ μΈμ€ν΄μ€κ° μμ±λ λ μΈμ€ν΄μ€μ μμ±μ μ μν μ μλ€.
def __init__(self):
print('μμ±λ λ μλμΌλ‘ νΈμΆλλ λ©μλμ
λλ€.')
def __del__(self):
print('μλ©Έλ λ μλμΌλ‘ νΈμΆλλ λ©μλμ
λλ€.')
class Person:
def __init__(self, name):
self.name = name
def talk(self):
return f'μλ
, λλ {self.name}'
me = Person('λ©μνΈλ λ')
print(me.name)
>> λ©μνΈλ λ
λλΈμΈλμ€μ½μ΄(__
)κ° μλ λ©μλλ νΉλ³ν μΌμ νκΈ° μν΄ λ§λ€μ΄μ§ λ©μλμ΄κΈ° λλ¬Έμ μ€νμ
λ©μλ
νΉμ λ§€μ§ λ©μλ
λΌκ³ λΆλ¦½λλ€.
맀μ§(μ€νμ
) λ©μλ νν: __someting__
__new__, __reduce__ , __reduce_ex__ , __repr__ , __rmod__ , __rmul__ , __setattr__ , __sizeof__ , __str__
__str__(self)
print()
) ν λ 보μ¬μ€ λ΄μ©μ μ μν μ μμclass Person:
def __str__(self):
return 'κ°μ²΄ μΆλ ₯(print)μ 보μ¬μ€ λ΄μ©'