从父类调用私有父类方法(django)

时间:2010-03-24 20:54:22

标签: python django inheritance abstract-class

我想从抽象父类调用重新定义的私有方法。如果重要,我正在使用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'"

我做错了什么?

1 个答案:

答案 0 :(得分:3)

初始双下划线阻止了多态性,因为方法调用的方法定义都被破坏为两个不同的名称。替换为单个下划线以解决此问题。

另外,双重下划线用于“私有”属性,你应该丢弃任何告诉你它们的引用。它们被用于MI消歧。