[Python] selfμ __init__
Class λ ν¬κ² μμ± / λ©μλλ‘ κ΅¬μ±
- λ©μλ : κΈ°λ₯μ νλ ν¨μ
- μμ± : λ°μ΄ν°
Personμ΄λΌλ ν΄λμ€κ° μμ λ, μ΄λ¦, λμ΄, μ§μ λ±μ μ λ³΄κ° μμ±μ΄κ³ μκΈ°μκ°μ κ°μ κΈ°λ₯μ΄ λ©μλ
μ¬κΈ°μ selfλ μκΈ° μμ , μ¦ μΈμ€ν΄μ€λ₯Ό μλ―Ένλ€.
class Person():
def __init__(self,name,age,job):
self.name = name
self.age = age
self.job = job
Class κ΅¬μ± μ μ₯μ
- κΈλ‘λ² λ³μλ₯Ό μμ κ³ , λͺ¨λ λ³μλ₯Ό μ΄λ ν μ€μ½νμ μμμν΄
- λͺ λ²μ΄κ³ μ¬μ¬μ© κ°λ₯
- μ½λ μμ μ΅μν
- ν¨μ μ€ν μ€, ν¨μ μμ μ λ€μ νΈμΆνλ μ²λ¦¬ λ±μ΄ κ°λ₯
__init__
- 컨μ€νΈλν°λΌκ³ λΆλ¦¬λ μ΄κΈ°νλ₯Ό μν ν¨μ(λ©μλ)
- μΈμ€ν΄μ€νλ₯Ό μ€μν λ λ°λμ μ²μμ νΈμΆλλ νΉμν ν¨μ
- μΈμ€ν΄μ€ μμ±κ³Ό κ΄λ ¨ν΄ λ°μ΄ν°μ μ΄κΈ°λ₯Ό μ€μν¨
- 첫 λ²μ§Έ μΈμλ‘ λ°λμ self μ§μ ν΄μΌν¨, selfμλ μΈμ€ν΄μ€ μ μ²΄κ° μ λ¬λμ΄ μμ
class Person():
def __init__(self,name,age,job):
self.name = name
self.age = age
self.job = job
def print_name(self):
print(self.name)
j = Person('j', 20, 'student')
j.print_name()
# j
Class λ³μ vs μΈμ€ν΄μ€ λ³μ μ°¨μ΄
ν΄λμ€ λ³μ | μΈμ€ν΄μ€ λ³μ | |
무μ μΈκ° ? | ν΄λμ€ λ΄λΆμ μ μΈλ λ³μ | selfκ° λΆμ΄ μλ λ³μ, ν΄λμ€μ μΈμ€ν΄μ€κ° μμ±λ λ μμ± |
λ³μ μμΉ | classμ namespace | μΈμ€ν΄μ€μ namespace |
μΈμ μ¬μ© ? | μΈμ€ν΄μ€ κ°μ μλ‘ κ³΅μ ν΄μΌ νλ κ°, ν΄λμ€ λ³μλ λͺ¨λ μΈμ€ν΄μ€μ 곡μ λ¨ |
μΈμ€ν΄μ€ κ° κ³ μ ν κ°, λ€λ₯Έ μΈμ€ν΄μ€μ 곡μ νλ©΄ μλ¨ |
class Person():
class_num = 0
def __init__(self,name,age,job):
self.name = name
self.age = age
self.job = job
j = Person('j', 20, 'student')
j.class_num
#0
class_numμ ν΄λμ€ λ³μ
j.age
#20
ageλ μΈμ€ν΄μ€ λ³μ