在python 2.7 运行 python 3.x代码
出现下面的错误
super().__init__()
TypeError: super() takes at least 1 argument (0 given)
super().__init__()
TypeError: super() takes at least 1 argument (0 given)
这个是因为Python 2.x 与python 3.x 在类继承上的方式不同
python 2.7 是下面的方式 SuperClassName 是要继承类的名字
SupterClassName.__init__(self)
python 3.0 可以直接用super
super().__init__()
python 3.0的方式可以不使用基类的名字,写出的代码抽象度更高。
python 2.7 也可以利用super来实现类继承,不用写出基类名字。ClassName是现在创建的类。
super(ClassName,self).__init__()
只是对于Tkinter 做基类会出问题
super(ClassName,self).__init__()
TypeError: super() argument 1 must be type, not classobj
这个问题不深入研究了。