【问题标题】:How to call a method of base class with same name method in derived class in python?如何在python的派生类中调用同名方法的基类方法?
【发布时间】: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


【解决方案1】:

可以,可以直接调用Animaleat方法,将对象作为参数传入。

Animal.eat(mydog)

虽然如果你给方法取不同的名字,它可能会减少混乱的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 2014-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    相关资源
    最近更新 更多