π‘ λ³Έ ν¬μ€ν μ μμ λ΄μ©, κ΅μ¬, ChatGPTλ₯Ό μ°Έκ³ νμ¬ μ 리ν νμ΅ κΈ°λ‘μ λλ€.
κΈκ³Ό κ·Έλ¦Ό λ± λͺ¨λ μ½ν μΈ μ μ 리 λ° μμ±μ λ³Έ λΈλ‘κ·Έμμ μ§μ μ μλμμ΅λλ€.
Python κΈ°μ΄λΆν° Streamlit λ°μ΄ν° μκ°νκΉμ§ μ 리νλ νμ΅ κΈ°λ‘μ λλ€.
μ΄ κΈμ '13. [νμ΄μ¬] μμκ³Ό νμ νμΈ' μ λλ€.
κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μμλ μ΄λ―Έ λ§λ€μ΄μ§ ν΄λμ€λ₯Ό κΈ°λ°μΌλ‘ μλ‘μ΄ ν΄λμ€λ₯Ό λ§λ€ μ μλ€.
μ΄λ μ¬μ©νλ κ°λ μ΄ μμ(Inheritance) μ΄λ€.
μμμ μ¬μ©νλ©΄ κΈ°μ‘΄ ν΄λμ€μ μμ±κ³Ό λ©μλλ₯Ό κ·Έλλ‘ μ¬μ©ν μ μμΌλ©°, νμν κΈ°λ₯μ μΆκ°νκ±°λ μμ ν μ μλ€.
μ΄λ² κΈμμλ Pythonμμ ν΄λμ€ μμμ κΈ°λ³Έ κ°λ κ³Ό μ¬μ© λ°©λ², κ·Έλ¦¬κ³ κ°μ²΄μ νμ μ νμΈν λ μ¬μ©νλ isinstance() ν¨μλ₯Ό ν¨κ» μ 리ν΄λ³Έλ€.
μμ(Inheritance)
μμμ κΈ°μ‘΄ ν΄λμ€λ₯Ό κΈ°λ°μΌλ‘ μλ‘μ΄ ν΄λμ€λ₯Ό λ§λλ λ°©λ²μ΄λ€.
- κΈ°μ‘΄ ν΄λμ€ → λΆλͺ¨ ν΄λμ€(Parent / Super Class)
- μλ‘ λ§λλ ν΄λμ€ → μμ ν΄λμ€(Child / Sub Class)
μμμ μ¬μ©νλ©΄ λΆλͺ¨ ν΄λμ€μ μμ±κ³Ό λ©μλλ₯Ό μμ ν΄λμ€μμ κ·Έλλ‘ μ¬μ©ν μ μλ€.
μλ₯Ό λ€μ΄ λ€μκ³Ό κ°μ ν΄λμ€λ₯Ό μκ°ν΄λ³Ό μ μλ€.
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
print("μ리λ₯Ό λ
λλ€.")
μ΄μ Animal ν΄λμ€λ₯Ό μμλ°λ μλ‘μ΄ ν΄λμ€λ₯Ό λ§λ€μ΄λ³΄μ.
class Dog(Animal):
def bark(self):
print("λ©λ©!")
κ°μ²΄λ₯Ό μμ±νλ©΄ λΆλͺ¨ ν΄λμ€μ κΈ°λ₯λ μ¬μ©ν μ μλ€.
dog = Dog("Buddy")
print(dog.name)
dog.speak()
dog.bark()
μ¦, Dog ν΄λμ€λ Animal ν΄λμ€μ κΈ°λ₯μ κ·Έλλ‘ λ¬Όλ €λ°λλ€.
λ©μλ μ€λ²λΌμ΄λ©
μμ ν΄λμ€μμ λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό μ¬μ μν μλ μλ€.
μ΄κ²μ λ©μλ μ€λ²λΌμ΄λ©(Method Overriding) μ΄λΌκ³ νλ€.
μλ₯Ό λ€μ΄ Animal ν΄λμ€μ speak() λ©μλλ₯Ό μμ ν΄λμ€μμ λ€μ μ μν μ μλ€.
class Dog(Animal):
def speak(self):
print("λ©λ©!")
μ΄μ κ°μ²΄λ₯Ό νΈμΆνλ©΄ μμ ν΄λμ€μ λ©μλκ° μ€νλλ€.
dog = Dog("Buddy")
dog.speak()
μ€ν κ²°κ³Ό
λ©λ©!
μ΄μ²λΌ μμμ μ¬μ©νλ©΄ κΈ°μ‘΄ ν΄λμ€λ₯Ό κΈ°λ°μΌλ‘ κΈ°λ₯μ νμ₯νκ±°λ λ³κ²½ν μ μλ€.
super()
μμ ν΄λμ€μμ λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό νΈμΆν λλ super()λ₯Ό μ¬μ©ν μ μλ€.
μλ₯Ό λ€μ΄ λΆλͺ¨ ν΄λμ€μ μμ±μλ₯Ό νΈμΆνλ κ²½μ°κ° λ§λ€.
class Dog(Animal):
def __init__(self, name, breed):
super().__init__(name)
self.breed = breed
κ°μ²΄λ₯Ό μμ±νλ©΄ λΆλͺ¨ ν΄λμ€μ μ΄κΈ°ν μ½λλ ν¨κ» μ€νλλ€.
dog = Dog("Buddy", "Labrador")
print(dog.name)
print(dog.breed)
super()λ₯Ό μ¬μ©νλ©΄ λΆλͺ¨ ν΄λμ€μ κΈ°λ₯μ μ μ§νλ©΄μ μμ ν΄λμ€μ κΈ°λ₯μ μΆκ°ν μ μλ€.
νμ νμΈ
κ°μ²΄κ° νΉμ ν΄λμ€μ μΈμ€ν΄μ€μΈμ§ νμΈν λλ isinstance() ν¨μλ₯Ό μ¬μ©ν μ μλ€.
dog = Dog("Buddy", "Labrador")
print(isinstance(dog, Dog))
print(isinstance(dog, Animal))
μ€ν κ²°κ³Ό
True
True
dog κ°μ²΄λ Dog ν΄λμ€μ μΈμ€ν΄μ€μ΄λ©΄μ λμμ Animal ν΄λμ€λ₯Ό μμλ°μκΈ° λλ¬Έμ Animal νμ μΌλ‘λ μΈμλλ€.
μ¦, isinstance()λ μμ κ΄κ³κΉμ§ κ³ λ €νμ¬ νμ μ νμΈνλ€.
μμ ꡬ쑰 μμ
dog κ°μ²΄λ Dog ν΄λμ€μ μΈμ€ν΄μ€μ΄λ©΄μ λμμ Animal ν΄λμ€λ₯Ό μμλ°μκΈ° λλ¬Έμ Animal νμ μΌλ‘λ μΈμλλ€.
μ¦, isinstance()λ μμ κ΄κ³κΉμ§ κ³ λ €νμ¬ νμ μ νμΈνλ€.
Animal
ββ Dog
ββ Cat
μ½λλ‘ νννλ©΄ λ€μκ³Ό κ°λ€.
class Cat(Animal):
def speak(self):
print("μΌμΉ")
μ΄λ κ² νλ©΄ Dog, Cat λͺ¨λ Animal ν΄λμ€μ κΈ°λ₯μ 곡μ νκ² λλ€.
μ 리
μμμ κΈ°μ‘΄ ν΄λμ€λ₯Ό κΈ°λ°μΌλ‘ μλ‘μ΄ ν΄λμ€λ₯Ό λ§λλ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ ν΅μ¬ κ°λ μ΄λ€.
Pythonμμ μμμ μ¬μ©νλ©΄
- λΆλͺ¨ ν΄λμ€μ μμ±κ³Ό λ©μλλ₯Ό μ¬μ¬μ©ν μ μκ³
- μμ ν΄λμ€μμ κΈ°λ₯μ νμ₯νκ±°λ μμ ν μ μλ€.
λν isinstance() ν¨μλ₯Ό μ¬μ©νλ©΄ κ°μ²΄κ° νΉμ ν΄λμ€μ μΈμ€ν΄μ€μΈμ§, λλ μμ κ΄κ³μ μλμ§ νμΈν μ μλ€.
μμμ νμ©νλ©΄ μ½λμ μ¬μ¬μ©μ±κ³Ό ꡬ쑰μ μΈ μ€κ³κ° κ°λ₯ν΄μ§λ©°, κ°μ²΄μ§ν₯ νλ‘κ·Έλ¨μ λμ± ν¨μ¨μ μΌλ‘ ꡬμ±ν μ μλ€.
λ€μ κΈμμλ κ°μ²΄μ λμμ νμ₯νλ λ°©λ²μΈ μ€νμ λ©μλμ μ°μ°μ μ€λ²λ‘λ©μ μ΄ν΄λ³Έλ€.
'Python & SQL > Python Basics' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| 15. [νμ΄μ¬] μ 보μλκ³Ό ν΄λμ€ λ΄λΆ ꡬ쑰 (2) | 2026.03.08 |
|---|---|
| 14. [νμ΄μ¬] μ€νμ λ©μλμ μ°μ°μ μ€λ²λ‘λ© (2) | 2026.03.08 |
| 12. [νμ΄μ¬] ν΄λμ€μ κ°μ²΄ (0) | 2026.03.08 |
| 11. [νμ΄μ¬] Python λ©λͺ¨λ¦¬ κ΄λ¦¬ (0) | 2026.03.08 |
| 10. [νμ΄μ¬] mutable vs immutable (0) | 2026.03.07 |