关于继承:使用python的super()继承属性

Using python's super() to inherit attributes

本问题已经有最佳答案,请猛点这里访问。

Python 2.7.10

你好,

我要做的就是继承超类属性,这是一个标准的面向对象的事情。

从我在网上和其他地方能找到的信息来看,这应该是可行的:

1
2
3
class SubClass(MyParentClass):
   def __init__(self):
      super(SubClass, self).__init__()

得到:

1
TypeError: must be type, not classobj

怎么不是那种类型?我把这个问题按在:

1
2
3
class SubClass(MyParentClass):
   def __init__(self):
      super(type(self.__class__), self).__init__()

得到:

1
TypeError: super(type, obj): obj must be an instance or subtype of type

我不能把我的大脑包在那个上面。对象实例不是其类类型的实例吗?这怎么可能呢?

任何帮助都将不胜感激。


(P)在Python2,EDOCX1的英文字母0将只在从EDOCX1的英文字母1中产生的那些等级中发挥作用。(p)(P)如果超级阶级被宣布为(p)字母名称(P)You will get the mistake you see,because the class created is an old0style class tht doesn't support EDOCX1.(p)(P)The Superclass Declaration Needs to be(p)字母名称(P)For example:(p)字母名称(P)在Python3 old-style classes have been removed,so explicit inheritance from object is no longer required.(p)