我需要一些代码才能在Python 2和3中运行。 我上课
class myClass:
def __init__(self):
带着孩子。我尝试过:
from myClassfile import myClass as myBaseClass
class myClass(myBaseClass):
def __init__(self):
super().__init__()
但是由于已知的python2 / 3差异而失败。 我已关注TypeError: super() takes at least 1 argument (0 given) error is specific to any python version?
直到:
from myClassfile import myClass as myBaseClass
class myClass(myBaseClass):
def __init__(self):
super(myClass,self).__init__()
但这仍然由于以下原因而失败:
TypeError: super() argument 1 must be type, not classobj
答案 0 :(得分:1)
在Python 2中,一个类必须继承自object
才能成为new-style-class:
class myClass(object):
def __init__(self):
在Python 3中,这可能会完成,也可能不会完成-不会有什么不同。
由于在代码myClass
中继承自myBaseClass
,因此应确保myBaseClass
从对象继承:
class myBaseClass(object):
...
class myClass(myBaseClass):
def __init__(self):
super(myClass, self).__init__()