如何在Python中调用派生类中同名方法的基类方法?

Cap*_*rsh 4 python methods inheritance

代码:-

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()
Run Code Online (Sandbox Code Playgroud)

这里,当我使用 mydog 对象调用 eat() 方法时,它会打印“Dog Eating”,是否有任何方法可以使用 mydog 对象调用基类 Animal 类的 eat() 方法,就像有这样的东西

mydog.Animal.eat() or mydog.eat(Animal)
Run Code Online (Sandbox Code Playgroud)

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

khe*_*ood 5

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

Animal.eat(mydog)
Run Code Online (Sandbox Code Playgroud)

不过,如果您为这些方法指定不同的名称,则可能会减少代码的混乱。