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)