【发布时间】:2021-07-18 12:14:41
【问题描述】:
代码:-
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(),所以它会打印两个语句“动物吃”和“狗吃”,这是我不想要的,我一次只能调用一个。
【问题讨论】:
-
Animal.eat(mydog) -
它应该显示“Dog Eating”,因为你有一条狗并且它被覆盖了基本方法。
标签: python inheritance methods