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

标签 python inheritance methods

代码:-

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/

相关文章:

java - 提取后方法调用不起作用

python - 在相同 ID 出现超过 n 次的 Pandas 中保留行,并按 ID 转换为列表

python - Pygame 需要 "for event in pygame.event.get()"才能不崩溃

java - 是否可以使用默认方法实现来实现基类中的抽象方法

c++ - 如何从另一个类访问函数?

PHP 用字符串替换类函数

python - 如何使用 pip 处理 python 应用程序的 C 扩展?

python - 当涉及无穷大值时, Pandas 滚动返回 NaN

c++ - C++ STD::List:遍历列表的麻烦

java - 我应该如何使用父类(super class)的实例构造子类?