νμ΄μ¬ λ©μλ μ€λ²λΌμ΄λ© μμ μ 볡: μμμ μ§μ§ νμ μ΄ν΄νμ
νμ΄μ¬μ λ°°μ°λ€ 보면 ‘μμ’μ΄λΌλ κ°λ μ μ νκ² λ©λλ€. κ·Έλ¦¬κ³ κ·Έ μμμ ν΅μ¬ κΈ°λ₯ μ€ νλκ° λ°λ‘ ‘λ©μλ μ€λ²λΌμ΄λ©’μ λλ€. μ΄ κΈμ λ©μλ μ€λ²λΌμ΄λ©μ κ°λ λΆν° μ€μ μμ κΉμ§, ν루μ νλμ© νμ΄μ¬μ λ°°μ°λ μ¬μ μ μΌνμΌλ‘ μ€λΉλμμ΅λλ€.
Thank you for reading this post, don't forget to subscribe!π λͺ©μ°¨
1. λ©μλ μ€λ²λΌμ΄λ©μ΄λ?
λ©μλ μ€λ²λΌμ΄λ©(Method Overriding)μ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μμ μμ ν΄λμ€κ° λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό μ¬μ μνμ¬ μ¬μ©νλ κΈ°λ₯μ λλ€. μ΄λ μμμ ν΅ν΄ λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό λ¬Όλ €λ°λ, μμ ν΄λμ€μμ ν΄λΉ λ©μλλ₯Ό μλ‘κ² κ΅¬νν¨μΌλ‘μ¨ νΉμ λμμ λ³κ²½νκ±°λ νμ₯ν μ μκ² ν©λλ€.
μλ₯Ό λ€μ΄, λΆλͺ¨ ν΄λμ€μΈ Person
μ greeting()
λ©μλκ° μ μλμ΄ μκ³ , μμ ν΄λμ€μΈ Student
μμ κ°μ μ΄λ¦μ greeting()
λ©μλλ₯Ό μλ‘κ² μ μνλ©΄, Student
κ°μ²΄μμ νΈμΆλλ greeting()
μ μμ ν΄λμ€μ λ©μλκ° μ€νλ©λλ€.
class Person:
def greeting(self):
print('μλ
νμΈμ.')
class Student(Person):
def greeting(self):
print('μλ
νμΈμ. μ λ νμμ
λλ€.')
james = Student()
james.greeting()
# μΆλ ₯: μλ
νμΈμ. μ λ νμμ
λλ€.
μ΄μ²λΌ λ©μλ μ€λ²λΌμ΄λ©μ ν΅ν΄ μμ ν΄λμ€λ λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό μμ μ νμμ λ§κ² λ³κ²½νμ¬ μ¬μ©ν μ μμ΅λλ€.
2. μ μ€λ²λΌμ΄λ©μ μ¬μ©ν κΉ?
λ©μλ μ€λ²λΌμ΄λ©μ μ¬μ©νλ μ£Όμ μ΄μ λ λ€μκ³Ό κ°μ΅λλ€:
μ΄μ | μ€λͺ |
---|---|
κΈ°λ₯ νμ₯ | λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό κΈ°λ°μΌλ‘ μΆκ°μ μΈ κΈ°λ₯μ ꡬνν μ μμ΅λλ€. |
νλ λ³κ²½ | μμ ν΄λμ€μμ νΉμ λ©μλμ λμμ λ³κ²½νμ¬ λ€λ₯Έ κ²°κ³Όλ₯Ό μ»μ μ μμ΅λλ€. |
μ½λ μ¬μ¬μ© | super()λ₯Ό ν΅ν΄ λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό νΈμΆνμ¬ μ€λ³΅ μ½λλ₯Ό μ€μΌ μ μμ΅λλ€. |
μλ₯Ό λ€μ΄, μμ ν΄λμ€μμ λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό νΈμΆνκ³ μΆκ°μ μΈ λμμ μννλ €λ©΄ super()
ν¨μλ₯Ό μ¬μ©ν μ μμ΅λλ€.
class Person:
def greeting(self):
print('μλ
νμΈμ.')
class Student(Person):
def greeting(self):
super().greeting()
print('μ λ νμμ
λλ€.')
james = Student()
james.greeting()
# μΆλ ₯:
# μλ
νμΈμ.
# μ λ νμμ
λλ€.
μ΄μ²λΌ super()
λ₯Ό νμ©νλ©΄ λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό νΈμΆνμ¬ κΈ°μ‘΄ κΈ°λ₯μ μ μ§νλ©΄μ μλ‘μ΄ κΈ°λ₯μ μΆκ°ν μ μμ΅λλ€.
3. μ€λ²λΌμ΄λ© ꡬν λ°©λ²
λ©μλ μ€λ²λΌμ΄λ©μ ꡬννλ €λ©΄ λ€μκ³Ό κ°μ λ¨κ³λ₯Ό λ°λ¦ λλ€:
- λΆλͺ¨ ν΄λμ€μμ λ©μλλ₯Ό μ μν©λλ€.
- μμ ν΄λμ€μμ κ°μ μ΄λ¦μ λ©μλλ₯Ό μ μνμ¬ μ¬μ μν©λλ€.
- νμμ λ°λΌ
super()
λ₯Ό μ¬μ©νμ¬ λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό νΈμΆν μ μμ΅λλ€.
μμ :
class Animal:
def sound(self):
print('λλ¬Όμ΄ μ리λ₯Ό λ
λλ€.')
class Dog(Animal):
def sound(self):
print('λ©λ©!')
dog = Dog()
dog.sound()
# μΆλ ₯: λ©λ©!
μ μμ μμ Dog
ν΄λμ€λ Animal
ν΄λμ€μ sound()
λ©μλλ₯Ό μ€λ²λΌμ΄λ©νμ¬ μμ λ§μ μ리λ₯Ό μΆλ ₯ν©λλ€.
4. super() ν¨μμ νμ©
super()
ν¨μλ μμ ν΄λμ€μμ λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό νΈμΆν λ μ¬μ©λ©λλ€. μ΄λ μ½λμ μ¬μ¬μ©μ±μ λμ΄κ³ , λ€μ€ μμ μ λ©μλ ν΄μ μμλ₯Ό κ΄λ¦¬νλ λ° μ μ©ν©λλ€.
μλ₯Ό λ€μ΄, μμ ν΄λμ€μμ λΆλͺ¨ ν΄λμ€μ __init__()
λ©μλλ₯Ό νΈμΆνμ¬ μ΄κΈ°νλ₯Ό μνν μ μμ΅λλ€.
class Parent:
def __init__(self):
print("λΆλͺ¨ ν΄λμ€ μ΄κΈ°ν")
class Child(Parent):
def __init__(self):
super().__init__()
print("μμ ν΄λμ€ μ΄κΈ°ν")
child = Child()
# μΆλ ₯:
# λΆλͺ¨ ν΄λμ€ μ΄κΈ°ν
# μμ ν΄λμ€ μ΄κΈ°ν
μ΄μ²λΌ super()
λ₯Ό μ¬μ©νλ©΄ λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό νΈμΆνμ¬ κΈ°μ‘΄ κΈ°λ₯μ μ μ§νλ©΄μ μμ ν΄λμ€μμ μΆκ°μ μΈ λμμ μνν μ μμ΅λλ€.
5. μ€μ μμ : μ€λ²λΌμ΄λ© μμ©
λ€μμ λ©μλ μ€λ²λΌμ΄λ©μ νμ©ν μ€μ μμ μ
λλ€. λΆλͺ¨ ν΄λμ€μΈ Employee
μ μμ ν΄λμ€μΈ Manager
λ₯Ό μ μνκ³ , get_details()
λ©μλλ₯Ό μ€λ²λΌμ΄λ©νμ¬ μΆκ° μ 보λ₯Ό μΆλ ₯ν©λλ€.
class Employee:
def __init__(self, name):
self.name = name
def get_details(self):
return f"μ΄λ¦: {self.name}"
class Manager(Employee):
def __init__(self, name, department):
super().__init__(name)
self.department = department
def get_details(self):
base_details = super().get_details()
return f"{base_details}, λΆμ: {self.department}"
manager = Manager("νκΈΈλ", "κ°λ°ν")
print(manager.get_details())
# μΆλ ₯: μ΄λ¦: νκΈΈλ, λΆμ: κ°λ°ν
μ΄ μμ μμ Manager
ν΄λμ€λ Employee
ν΄λμ€μ get_details()
λ©μλλ₯Ό μ€λ²λΌμ΄λ©νμ¬ λΆμ μ 보λ₯Ό μΆκ°λ‘ μΆλ ₯ν©λλ€. λν super()
λ₯Ό μ¬μ©νμ¬ λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό νΈμΆνκ³ μμ΅λλ€.
6. μ€λ²λΌμ΄λ© μ νν μ€μμ ν
- λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό μμ ν λ체νλ €λ κ²½μ°:
super()
λ₯Ό νΈμΆνμ§ μμΌλ©΄ λΆλͺ¨ ν΄λμ€μ μ€μν μ΄κΈ°νλ λ‘μ§μ΄ λλ½λ μ μμ΅λλ€. - λ©μλ μκ·Έλμ² λΆμΌμΉ: μ€λ²λΌμ΄λ© μ λ©μλ μ΄λ¦κ³Ό λ§€κ°λ³μκ° λΆλͺ¨ ν΄λμ€μ μΌμΉνμ§ μμΌλ©΄ μλν λλ‘ λμνμ§ μμ μ μμ΅λλ€.
- λ€μ€ μμμμμ
super()
μ¬μ©: λ€μ€ μμ μsuper()
λ₯Ό μ μ ν μ¬μ©νμ§ μμΌλ©΄ λ©μλ ν΄μ μμ(MRO)κ° κΌ¬μ¬ μκΈ°μΉ μμ λμμ μ΄λν μ μμ΅λλ€. - λΆνμν μ€λ²λΌμ΄λ©: λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό κ·Έλλ‘ μ¬μ©ν μ μμμλ λΆκ΅¬νκ³ μ€λ²λΌμ΄λ©μ νλ©΄ μ½λκ° λΆνμνκ² λ³΅μ‘ν΄μ§ μ μμ΅λλ€.
μ΄λ¬ν μ€μλ₯Ό νΌνκΈ° μν΄μλ μ€λ²λΌμ΄λ©μ λͺ©μ μ λͺ
νν νκ³ , νμν λλ§ μ€λ²λΌμ΄λ©μ μννλ©°, super()
μ μ¬μ©μ μ μ ν κ³ λ €ν΄μΌ ν©λλ€.
4. μ€μ νκΈ° λ° μ¬μ©μ κΏν
“μ²μμλ λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό μ€λ²λΌμ΄λ©νλ©΄μ
super()
λ₯Ό νΈμΆνλ κ²μ μκ³ , μμμΉ λͺ»ν λμμ λΉν©νμ΅λλ€. νΉν λ€μ€ μμ ꡬ쑰μμλsuper()
μ νΈμΆ μμκ° μ€μνλ€λ κ²μ κΉ¨λ¬μμ΅λλ€.”
β ν΅μ¬μ μ΄κ²!
super()
μ μ€μμ±: λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό νΈμΆνμ¬ μ΄κΈ°νλ νμ λ‘μ§μ μνν΄μΌ ν λλsuper()
λ₯Ό λ°λμ νΈμΆν΄μΌ ν©λλ€.- λ©μλ μκ·Έλμ² μΌμΉ: μ€λ²λΌμ΄λ© μ λ©μλμ μ΄λ¦κ³Ό λ§€κ°λ³μκ° λΆλͺ¨ ν΄λμ€μ μΌμΉν΄μΌ μκΈ°μΉ μμ μ€λ₯λ₯Ό λ°©μ§ν μ μμ΅λλ€.
- λ€μ€ μμ μ£Όμ: λ€μ€ μμ ꡬ쑰μμλ λ©μλ ν΄μ μμ(MRO)λ₯Ό μ΄ν΄νκ³
super()
λ₯Ό μ μ ν μ¬μ©ν΄μΌ ν©λλ€. - λΆνμν μ€λ²λΌμ΄λ© μ§μ: λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό κ·Έλλ‘ μ¬μ©ν μ μλ€λ©΄ μ€λ²λΌμ΄λ©μ νΌνλ κ²μ΄ μ½λμ κ°κ²°μ±κ³Ό μ μ§λ³΄μμ±μ λμμ΄ λ©λλ€.
ν©νΈ λ¬Έμ₯: “λ©μλ μ€λ²λΌμ΄λ©μ κ°λ ₯ν λꡬμ§λ§, μλͺ» μ¬μ©νλ©΄ μ½λμ 볡μ‘μ±κ³Ό μ€λ₯λ₯Ό μ¦κ°μν¬ μ μμ΅λλ€.”
5. μμ£Ό 묻λ μ§λ¬Έ (FAQ)
Q1: λ©μλ μ€λ²λΌμ΄λ© μ λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό μμ ν λ체ν΄μΌ νλμ?
A1: μλλλ€. super()
λ₯Ό μ¬μ©νμ¬ λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό νΈμΆνκ³ , μΆκ°μ μΈ λμμ μνν μ μμ΅λλ€. μ΄λ μ½λμ μ¬μ¬μ©μ±κ³Ό μ μ§λ³΄μμ±μ λμ΄λ λ° λμμ΄ λ©λλ€.
Q2: μ€λ²λΌμ΄λ© μ λ©μλμ λ§€κ°λ³μλ₯Ό λ³κ²½ν΄λ λλμ?
A2: λ©μλ μ€λ²λΌμ΄λ©μμλ λ©μλμ μ΄λ¦κ³Ό λ§€κ°λ³μκ° λΆλͺ¨ ν΄λμ€μ μΌμΉν΄μΌ ν©λλ€. λ§€κ°λ³μλ₯Ό λ³κ²½νλ©΄ μ€λ²λΌμ΄λ©μ΄ μλ μλ‘μ΄ λ©μλλ‘ μΈμλ μ μμ΅λλ€.
Q3: λ€μ€ μμ μ super()
μ λμμ μ΄λ»κ² λλμ?
A3: λ€μ€ μμμμλ λ©μλ ν΄μ μμ(MRO)μ λ°λΌ super()
κ° νΈμΆλ©λλ€. μ΄λ 볡μ‘ν μμ ꡬ쑰μμ λ©μλ νΈμΆ μμλ₯Ό λͺ
νν νμ¬ μκΈ°μΉ μμ λμμ λ°©μ§ν©λλ€.
Q4: μ€λ²λΌμ΄λ©λ λ©μλμμ λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό νΈμΆνμ§ μμΌλ©΄ μ΄λ€ λ¬Έμ κ° λ°μνλμ?
A4: λΆλͺ¨ ν΄λμ€μ μ€μν μ΄κΈ°νλ λ‘μ§μ΄ λλ½λ μ μμ΅λλ€. μ΄λ νλ‘κ·Έλ¨μ μμμΉ λͺ»ν λμμ΄λ μ€λ₯λ₯Ό μ΄λν μ μμΌλ―λ‘, νμν κ²½μ° super()
λ₯Ό μ¬μ©νμ¬ λΆλͺ¨ λ©μλλ₯Ό νΈμΆν΄μΌ ν©λλ€.
Q5: μ€λ²λΌμ΄λ©μ΄ νμν κ²½μ°λ μ΄λ€ λμΈκ°μ?
A5: λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό μμ ν΄λμ€μμ νΉνλ λμμΌλ‘ λ³κ²½νκ±°λ νμ₯ν΄μΌ ν λ μ€λ²λΌμ΄λ©μ μ¬μ©ν©λλ€. μ΄λ μ½λμ μ μ°μ±κ³Ό μ¬μ¬μ©μ±μ λμ΄λ λ° λμμ΄ λ©λλ€.
6. μ°Έκ³ μλ£ λ° μκ° μλ£

μΆμ²: GeeksforGeeks

μΆμ²: Scaler Topics
- GeeksforGeeks: Method Overriding in Python
- GeeksforGeeks: Python super()
- Real Python: Supercharge Your Classes With Python super()
- TutorialsPoint: Python Method Overriding
7. λ§λ¬΄λ¦¬ λ° λ³μ
λ©μλ μ€λ²λΌμ΄λ©μ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μμ ν΅μ¬μ μΈ κ°λ
μΌλ‘, μμ ν΄λμ€κ° λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό μ¬μ μνμ¬ μμ λ§μ λμμ ꡬνν μ μκ² ν©λλ€. μ΄λ₯Ό ν΅ν΄ μ½λμ μ¬μ¬μ©μ±κ³Ό μ μ°μ±μ λμΌ μ μμ΅λλ€. νμ§λ§ μ€λ²λΌμ΄λ©μ μ¬μ©ν λλ super()
λ₯Ό μ μ ν νμ©νμ¬ λΆλͺ¨ ν΄λμ€μ κΈ°λ₯μ μ μ§νκ±°λ νμ₯νλ κ²μ΄ μ€μν©λλ€. νΉν λ€μ€ μμ ꡬ쑰μμλ λ©μλ ν΄μ μμ(MRO)λ₯Ό μ΄ν΄νκ³ super()
λ₯Ό μ μ ν μ¬μ©ν΄μΌ μκΈ°μΉ μμ λμμ λ°©μ§ν μ μμ΅λλ€.
π λΈλ‘κ·Έ λ©ν μμ½
νμ΄μ¬ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μμ ν΅μ¬μ μΈ κ°λ
μΈ λ©μλ μ€λ²λΌμ΄λ©μ μμΈν λ€λ£¨μμ΅λλ€. super()
ν¨μμ μ νν μ¬μ©λ²κ³Ό λ€μ€ μμ ꡬ쑰μμμ μ μμ μ μ€μ μμ λ₯Ό ν΅ν΄ λΆμνλ©°, κ°λ° μ€λ¬΄μλ€μ΄ νν μ μ§λ₯΄λ μ€μμ κ·Έ ν΄κ²°μ±
κΉμ§ ν¬ν¨ν μμ κ°μ΄λμ
λλ€. μ΄λ³΄μλΆν° μ€κΈ κ°λ°μκΉμ§ λ°λμ μμμΌ ν λ΄μ©μ μΉμ νκ² μ 리ν ν¬μ€νΈμ
λλ€.
HANSORI.AI_Blog Labsμμ λ μμ보기
ꡬλ μ μ μ²νλ©΄ μ΅μ κ²μλ¬Όμ μ΄λ©μΌλ‘ λ°μλ³Ό μ μμ΅λλ€.