0 Переопределение основного метода

Ниже приведен пример базового переопределением в Python (для наглядности и совместимости как с Python 2 и 3, используя новый класс стиля и print с () ):

 class Parent(object):
    def introduce(self):
        print("Hello!")

    def print_name(self):
        print("Parent")


class Child(Parent):
    def print_name(self):
        print("Child")


p = Parent()
c = Child()

p.introduce()
p.print_name()

c.introduce()
c.print_name()

$ python basic_override.py 
Hello!
Parent
Hello!
Child

 

Когда Child создан класс, он наследует методы Parent класса. Это означает, что любые методы, которые есть у родительского класса, также будут у дочернего класса. В этом примере introduce определяется для Child класса , поскольку она определена для Parent , несмотря на не определены явно в определении класса от Child .

В этом примере, наиважнейший происходит , когда Child определяет свой собственный print_name метод. Если этот метод не был объявлен, то c.print_name() был бы напечатан "Parent" . Тем не менее, Child имеет перекрываться в Parent определении «s из print_name , и теперь при вызове c.print_name() , слово "Child" печатаются.