首页 > 解决方案 > 如何在python的派生类中调用同名方法的基类方法?

问题描述

代码:-

class Animal():
        
    def __init__(self) -> None:
        print("Animal Created")
        
            
    def eat(self):
        print("Animal Eating")
            
class Dog(Animal):
    
    def __init__(self) -> None:
        # Animal.__init__(self)
        print ("Dog Created")
        
    def eat(self):
        print("Dog Eating")
    
mydog = Dog()
mydog.eat()

在这里,当我用 mydog 对象调用 eat() 方法时,它会打印“Dog Eating”,有没有办法用 mydog 对象调用基础 Animal 类的 eat() 方法,就像这样

mydog.Animal.eat() or mydog.eat(Animal)

我不想使用 super(),因为它会从子类调用eat(),所以它会打印两个语句“动物吃”和“狗吃”,这是我不想要的,我想调用一次只有一个。

标签: pythoninheritancemethods

解决方案


是的,你可以直接调用的eat方法Animal,将对象作为参数传递。

Animal.eat(mydog)

虽然如果您给方法提供不同的名称,它可能会使代码更容易混淆。


推荐阅读