Python 2.7 2.x 与Python 3.x 3.0 类继承代码的变动 TypeError: super() takes at least 1 argument (0 given)

在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

这个问题不深入研究了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值