
μ΄ μ±ν°λ Python ν΄λμ€μ κΈ°μ΄ λ¬Έλ²λΏ μλλΌ, μ€λ¬΄μμ κ°μ₯ μμ£Ό μ¬μ©λλ ν΄λμ€ μ€κ³ ν¨ν΄κΉμ§ ν¨κ» λ€λ£¬λ€.
μ€λ¬΄μμλ μλ°±~μμ² μ€μ μ½λκ° νλμ μλΉμ€ μμμ λμνλ€. λ³μμ ν¨μλ§μΌλ‘ μ½λλ₯Ό ꡬμ±νλ©΄ λ°μ΄ν°μ λ‘μ§μ΄ ν©μ΄μ Έ μ μ§λ³΄μνκΈ° μ΄λ €μ΄ μ½λκ° λλ€.
ν΄λμ€λ κ΄λ ¨λ λ°μ΄ν°(μμ±)μ κΈ°λ₯(λ©μλ)μ νλλ‘ λ¬Άμ΄ μ½λλ₯Ό ꡬ쑰ννλ ν΅μ¬ λꡬλ€.
student1_name = "κΉμ² μ"
student1_id = "2024001"
student1_score = 85
student2_name = "μ΄μν¬"
student2_id = "2024002"
student2_score = 92
class Student: def __init__(self, name, student_id, score): self.name = name self.student_id = student_id self.score = scoredef is_passed(self): return self.score >= 60 def get_grade(self): if self.score >= 90: return "A" elif self.score >= 80: return "B" elif self.score >= 70: return "C" else: return "F"
μ΄μ νμμ΄ 30λͺ , 300λͺ μΌλ‘ λμ΄λλ ν΄λμ€ νλλ‘ μΌκ΄μ± μκ² κ΄λ¦¬ν μ μλ€.
| κ°λ | μ€λͺ |
|---|---|
| ν΄λμ€ | κ°μ²΄λ₯Ό λ§λ€κΈ° μν μ€κ³λ |
| μΈμ€ν΄μ€ | ν΄λμ€λ‘ μμ±λ μ€μ κ°μ²΄ |
| μμ± | κ°μ²΄κ° κ°μ§ λ°μ΄ν° |
| λ©μλ | κ°μ²΄κ° μννλ λμ |
__init__μ μΈμ€ν΄μ€κ° μμ±λ λ μλ μ€νλλ μ΄κΈ°ν λ©μλλ€.
student = Student("κΉμ² μ", "2024001", 85)
__init__ νΈμΆ
selfλ ν΄λΉ λ©μλλ₯Ό νΈμΆν μΈμ€ν΄μ€ μμ μ΄λ€.
class User:
def __init__(self, name):
self.name = name
def greet(self):
print(self.name)
alice = User("Alice")
bob = User("Bob")
alice.greet() # Alice
bob.greet() # Bob
λ©μλλ νμ μΈμ€ν΄μ€.method() ννλ‘ νΈμΆλλ©°,
Pythonμ΄ μλμΌλ‘ selfλ₯Ό μ λ¬νλ€.
class User:
def __init__(self, name):
self.name = name
selfλ₯Ό ν΅ν΄ μ κ·Όclass User: count = 0def __init__(self, name): self.name = name User.count += 1
from dataclasses import dataclass
@dataclass
class ServerConfig:
host: str
port: int
timeout: int = 30
<dataclassλ μ€μ κ°, DTO(Data Transfer Object)μ λ§€μ° μμ£Ό μ°μΈλ€.
class ShoppingCart: def __init__(self): self.items = []def add_item(self, item, price): self.items.append({"item": item, "price": price}) def get_total(self): return sum(i["price"] for i in self.items)
ν΄λμ€λ μν + νμλ₯Ό ν¨κ» κ΄λ¦¬νλ λ° μ΅μ νλ ꡬ쑰λ€.
νλμ ν΄λμ€λ νλμ μν λ§ κ°μ ΈμΌ νλ€.
class User:
def __init__(self, name, email):
self.name = name
self.email = email
class UserRepository:
def save(self, user): pass
class EmailService:
def send(self, user, message): pass
μ΄ μμΉμ μ§ν€μ§ μμΌλ©΄ God Objectκ° λλ€.
| ν€μλ | μλ―Έ |
|---|---|
| class | μ€κ³λ |
| instance | μ€μ κ°μ²΄ |
| __init__ | μ΄κΈ°ν |
| self | κ°μ²΄ μμ |
| state | κ°μ²΄μ νμ¬ μν |