从超类调用子类中的相似命名函数

用户32882

这个问题的跟进,这个问题的表述不是很好。答案提供了一些额外的见解,所以现在我构建了一个有限的工作示例来更好地解释它。

基本上我们有两个子类AB一个C继承自两者的类AB两者都有一个功能,MyFunc但它做不同的事情。

我希望 classC能够使用这两个函数并完全控制调用哪个函数,因为我希望对每个函数做不同的事情。下面有限工作示例中的评论显示了我正在尝试做的事情。

    class A():
        def __init__(self, var1, var2):
            self.var1 = var1
            self.var2 = var2
        def MyFunc(self):
            result = self.var1 + self.var2
            return result
    
    class B():
        def __init__(self, var1):
            self.var1 = var1
        def MyFunc(self):
            result = self.var1**2
            return result
    
    class C(A,B):
        def __init__(self, var1, var2, var3):
            A.__init__(self, var1, var2)
            B.__init__(self, var3)
        def MyFunc(self):
            #in this function I want to call MyFunc from A and MyFunc from B. For example to add their results together

我怎么能叫MyFuncAMyFuncB距离MyFuncC

帕特里克·豪

您可以使用名称修改使子类中的类的属性可用,即使该子类定义了具有相同名称的属性。

class A():
    def __init__(self, var1, var2):
        self.var1 = var1
        self.var2 = var2
    def __MyFunc(self):
        result = self.var1 + self.var2
        return result
    MyFunc = __MyFunc

class B():
    def __init__(self, var1):
        self.var1 = var1
    def __MyFunc(self):
        result = self.var1**2
        return result
    MyFunc = __MyFunc

class C(A,B):
    def __init__(self, var1, var2, var3):
        A.__init__(self, var1, var2)
        B.__init__(self, var3)
    def MyFunc(self):
        return self._A__MyFunc() + self._B__MyFunc()

c = C(1, 2, 3)
print(c.MyFunc())
# 14

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从超类的构造函数中调用子类的构造函数

Java:从超类构造函数中的子类调用的方法

从Java中的子类构造函数调用超类

子类调用超类构造函数

从子类调用函数的超类

来自超类函数中相应子类的Swift调用类函数

Dart-如何在子类的构造函数中调用超类的工厂构造函数?

重载的子类函数无法调用相似名称的父类

有没有办法知道超类构造函数中调用对象的子类?C ++

如何在超类的静态函数中获取调用子类的名称?

从子类调用超类函数的正确方法

python超类可以从其子类调用函数吗?

从超类调用子类方法

确定用于调用子类中的方法的超类引用

您如何在Java中从超类调用子类方法?

如何从修饰的子类方法中调用重写的超类方法

为什么从子类的超类调用方法中获得“ this”?

从超类对象数组中调用子类方法

超类引用无法在Java中调用子类方法

在向量C ++中从超类调用子类方法

Swift:在子类中覆盖==仅在超类中导致==的调用

Java继承:在超类中调用子类方法

从 Java 中超类类型的 ArrayList 调用子类方法

在超类中创建Java调用函数

C ++-使指向超类的指针与函数中的子类参数匹配

如果将子类中的超类构造函数作为第一行调用,这有关系吗?

在调用超类的构造函数之前,有什么方法可以在Java中初始化子类的成员变量?

将子类转换为超类并调用两个类都具有的函数

父类的私有函数导致子类中具有相同名称和相似参数的公共函数模棱两可的调用