Python如何在继承父类的子类中调用父类的魔法方法
Python子类调用父类自定义魔法方法的实现方案
你可以通过两种方式在子类中调用父类定义的双下划线魔法方法,具体实现如下:
方式1:使用super()调用(推荐)
不需要硬编码父类名称,后续调整继承关系时代码维护成本更低,调用时不需要手动传入self参数:
class Class1: def __magicmethod__(self, arg1, arg2): # 父类方法逻辑示例 return arg1 + arg2 class Class2(Class1): def func1(self, x, y): # 调用父类魔法方法的代码 res = super().__magicmethod__(x, y) print(res)
方式2:直接通过父类名调用
适合多继承场景下需要明确指定调用某一个父类方法的场景,调用时需要手动传入self参数:
class Class2(Class1): def func1(self, x, y): # 调用父类魔法方法的代码 res = Class1.__magicmethod__(self, x, y) print(res)
注意事项
以上两种方式对Python内置的魔法方法(如__init__、__str__等)同样生效,双下划线开头结尾的魔法方法本质上只是Python约定特殊用途的普通方法,没有额外的调用限制。
内容的提问来源于stack exchange,提问作者Zypher100
相关产品推荐
相关产品推荐

