python - 如何在python的派生类中调用同名方法的基类方法?
问题描述
代码:-
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)
虽然如果您给方法提供不同的名称,它可能会使代码更容易混淆。
推荐阅读
- mysql - 无法使用 My Ip 连接到 AWS RDS,但可以使用 Anywhere
- javascript - Angular:从没有事件的孩子那里获取数据
- haskell - 如何为 Cabal/Stack 包指定源文件,而不仅仅是 hs-source-dirs/source-dirs?
- javascript - 将日期时间从 axios 数据 (YYYY-DD-MMThh:mm:ss) 转换为 MM/DD/YY
- dart - 如何在颤动中将数据从警报对话框传递到同一页面
- python - 在 Power BI 中使用 Python 脚本,ImportError: Missing required dependencies ['numpy']
- stdout - 为什么 `ssh-keygen --help` 不进入标准输出?
- c# - 有人可以解释这个类(它产生一个可以改变的正弦波频率)是如何工作的吗?
- google-maps - 使用 HERE 或 Google Maps API 检索沿线的所有状态
- ionic-framework - 如何处理物理电话上的“不存在'Access-Control-Allow-Origin'标头”?