代码:-
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(),所以它会打印两个语句“动物吃”和“狗吃”,这是我不想要的,我想调用一次只有一个。
最佳答案
是的,您可以调用eat
Animal
的方法直接将对象作为参数传递。
Animal.eat(mydog)
尽管如果您给方法提供不同的名称,它可能会使代码更容易混淆。
关于python - 如何在python的派生类中调用同名方法的基类方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67244328/