π‘ λ³Έ ν¬μ€ν μ μμ λ΄μ©, κ΅μ¬, ChatGPTλ₯Ό μ°Έκ³ νμ¬ μ 리ν νμ΅ κΈ°λ‘μ λλ€.
κΈκ³Ό κ·Έλ¦Ό λ± λͺ¨λ μ½ν μΈ μ μ 리 λ° μμ±μ λ³Έ λΈλ‘κ·Έμμ μ§μ μ μλμμ΅λλ€.
Python κΈ°μ΄λΆν° Streamlit λ°μ΄ν° μκ°νκΉμ§ μ 리νλ νμ΅ κΈ°λ‘μ λλ€.
μ΄ κΈμ '14. [νμ΄μ¬] μ€νμ λ©μλμ μ°μ°μ μ€λ²λ‘λ©' μ λλ€.
Pythonμμλ κ°μ²΄λ₯Ό μμ±νλ©΄ λ¨μν λ°μ΄ν°λ₯Ό μ μ₯νλ κ²λΏλ§ μλλΌ λ€μν μ°μ°κ³Ό λμμ μνν μ μλ€.
μλ₯Ό λ€μ΄ len(), +, print() κ°μ μ°μ°λ λ΄λΆμ μΌλ‘λ νΉμ λ©μλκ° νΈμΆλλ λ°©μμΌλ‘ λμνλ€.
μ΄λ μ¬μ©λλ κ²μ΄ μ€νμ λ©μλ(Special Method) μ΄λ©°, μ΄λ¬ν λ©μλλ₯Ό νμ©νλ©΄ μ°μ°μ μ€λ²λ‘λ©(Operator Overloading) λ ꡬν
ν μ μλ€.
μ΄λ² κΈμμλ Pythonμμ κ°μ²΄μ λμμ νμ₯νλ μ€νμ λ©μλμ μ°μ°μ μ€λ²λ‘λ©μ κ°λ κ³Ό κΈ°λ³Έ μ¬μ© λ°©λ²μ μ 리ν΄λ³Έλ€.
μ€νμ λ©μλ
μ€νμ λ©μλλ κ°μ²΄μ νΉμ λμμ μ μνλ λ©μλμ΄λ€.
μΌλ°μ μΌλ‘ μ΄λ¦ μλ€μ λλΈ μΈλμ€μ½μ΄(__) κ° λΆλ ννλ‘ μμ±λλ€.
μλ₯Ό λ€μ΄ λ€μκ³Ό κ°μ λ©μλλ€μ΄ μλ€.
- __init__
- __str__
- __len__
- __add__
μ΄ λ©μλλ€μ Python λ΄λΆμμ νΉμ μ°μ°μ΄ λ°μν λ μλμΌλ‘ νΈμΆλλ€.
str λ©μλ
κ°μ²΄λ₯Ό print()λ‘ μΆλ ₯ν λ μ΄λ€ ννλ‘ νμν μ§ μ μνλ λ©μλμ΄λ€.
μλ₯Ό λ€μ΄ λ€μ ν΄λμ€λ₯Ό 보μ.
class Student:
def __init__(self, name, score):
self.name = name
self.score = score
κ°μ²΄λ₯Ό μΆλ ₯νλ©΄ κΈ°λ³Έμ μΌλ‘ λ€μκ³Ό κ°μ΄ νμλλ€.
s = Student("Matt", 90)
print(s)
μΆλ ₯ μμ
<__main__.Student object at 0x...>
μ΄ μΆλ ₯μ μνλ λ°©μμΌλ‘ λ°κΎΈλ €λ©΄ __str__ λ©μλλ₯Ό μ μνλ©΄ λλ€.
class Student:
def __init__(self, name, score):
self.name = name
self.score = score
def __str__(self):
return f"{self.name} : {self.score}"
μ΄λ² κ°μ²΄λ₯Ό μΆλ ₯νλ©΄ λ€μκ³Ό κ°μ΄ νμλλ€.
s = Student("Matt", 90)
print(s)
μ€ν κ²°κ³Ό
Matt : 90
len λ©μλ
len() ν¨μκ° νΈμΆλ λ μ€νλλ λ©μλμ΄λ€.
μλ₯Ό λ€μ΄ λ€μ ν΄λμ€λ₯Ό 보μ.
class Team:
def __init__(self, members):
self.members = members
def __len__(self):
return len(self.members)
μ΄μ len()μ μ¬μ©ν μ μλ€.
team = Team(["Alice", "Bob", "Charlie"])
print(len(team))
μ€ν κ²°κ³Ό
3
μ°μ°μ μ€λ²λ‘λ©
μ°μ°μ μ€λ²λ‘λ©μ κΈ°μ‘΄ μ°μ°μμ λμμ μ¬μ©μ μ μ κ°μ²΄μ λ§κ² μ¬μ μνλ κ²μ΄λ€.
μλ₯Ό λ€μ΄ + μ°μ°μ μ¬μ©ν λ λ΄λΆμ μΌλ‘λ __add__ λ©μλκ° νΈμΆλλ€.
class Number:
def __init__(self, value):
self.value = value
def __add__(self, other):
return Number(self.value + other.value)
μ΄μ κ°μ²΄λΌλ¦¬ + μ°μ°μ μ¬μ©ν μ μλ€.
n1 = Number(10)
n2 = Number(20)
result = n1 + n2
print(result.value)
μ€ν κ²°κ³Ό
30
μ€νμ λ©μλ λμ λ°©μ
Pythonμμ μ°μ°μλ λ΄λΆμ μΌλ‘ μ€νμ λ©μλλ₯Ό νΈμΆνλ€.
μλ₯Ό λ€μ΄ λ€μκ³Ό κ°μ κ΄κ³κ° μλ€.
| μ°μ° | μ€νμ λ©μλ |
| + | __add__ |
| - | __sub__ |
| * | __mul__ |
| len() | __len__ |
| print() | __str__ |
μ¦ κ°μ²΄μ ν΄λΉ λ©μλλ₯Ό ꡬννλ©΄ Python κΈ°λ³Έ μ°μ°μ μ¬μ©μ μ μ κ°μ²΄μμλ μ¬μ©ν μ μλ€.
κ°λ¨ν μμ
κ°λ¨ν λ²‘ν° ν΄λμ€λ₯Ό λ§λ€μ΄λ³΄μ.
class Vector:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, other):
return Vector(self.x + other.x, self.y + other.y)
def __str__(self):
return f"({self.x}, {self.y})"
μ¬μ© μμ
v1 = Vector(1,2)
v2 = Vector(3,4)
v3 = v1 + v2
print(v3)
μ€ν κ²°κ³Ό
(4, 6)
μ΄μ²λΌ μ€νμ λ©μλλ₯Ό νμ©νλ©΄ κ°μ²΄μ λμμ μμ°μ€λ½κ² νμ₯ν μ μλ€.
μ 리
Pythonμμλ μ€νμ λ©μλλ₯Ό μ¬μ©ν΄ κ°μ²΄μ κΈ°λ³Έ λμμ μ μν μ μλ€.
νΉν __str__, __len__, __add__ κ°μ λ©μλλ κ°μ²΄μ μΆλ ₯, κΈΈμ΄ κ³μ°, μ°μ° λμμ ꡬνν λ μμ£Ό μ¬μ©λλ€.
λν μ°μ°μ μ€λ²λ‘λ©μ νμ©νλ©΄ μ¬μ©μ μ μ κ°μ²΄μμλ +, -, len() κ°μ μ°μ°μ μμ°μ€λ½κ² μ¬μ©ν μ μλ€.
μ΄λ¬ν κΈ°λ₯μ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μμ ν΄λμ€μ λμμ μ μ°νκ² νμ₯ν μ μκ² ν΄μ£Όλ μ€μν μμμ΄λ€.
λ€μ κΈμμλ ν΄λμ€ λ΄λΆ ꡬ쑰λ₯Ό μ΄ν΄νκΈ° μν **μ 보μλκ³Ό ν΄λμ€ λ΄λΆ μμ± κ΅¬μ‘°(__dict__, __slots__)**λ₯Ό μ΄ν΄λ³Έλ€.
'Python & SQL > Python Basics' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| 16. [νμ΄μ¬] class methos vs static method (2) | 2026.03.08 |
|---|---|
| 15. [νμ΄μ¬] μ 보μλκ³Ό ν΄λμ€ λ΄λΆ ꡬ쑰 (2) | 2026.03.08 |
| 13. [νμ΄μ¬] μμκ³Ό νμ νμΈ (0) | 2026.03.08 |
| 12. [νμ΄μ¬] ν΄λμ€μ κ°μ²΄ (0) | 2026.03.08 |
| 11. [νμ΄μ¬] Python λ©λͺ¨λ¦¬ κ΄λ¦¬ (0) | 2026.03.08 |