我想从抽象父类调用重新定义的私有方法。如果重要,我正在使用django。
class Parent(models.Model):
def method1(self):
#do somthing
self.__method2()
def method2(self):
pass # I also tried calling up a prent method with super
class child(Parent):
def method1(self)
super(Child, self).method1()
def __method2(self):
#do something
我得到了
AttributeError: "'Chil' object has no attribute '_Parent__method2'"
我做错了什么?
答案 0 :(得分:3)
初始双下划线阻止了多态性,因为方法调用的方法定义和都被破坏为两个不同的名称。替换为单个下划线以解决此问题。
另外,双重下划线不用于“私有”属性,你应该丢弃任何告诉你它们的引用。它们被用于MI消歧。