关于super() takes at least 1 argument (0 given)问题

1.python版本的问题,自身代码书写格式有误

      1) 在python2.x中,类的继承格式如下,函数super()需要两个实参:子类名和对象self。为帮助python将父类和子类联系起来,这两个参数必不可少。

关于super() takes at least 1 argument (0 given)问题_第1张图片

       2) 在python3.x中,类的继承格式如下,函数super()不需要携带实参

关于super() takes at least 1 argument (0 given)问题_第2张图片

      编写代码时注意自己要运行的版本,格式问题

2.编辑器没有配置正确的python环境

          我用的是sublime text,这个编辑器默认的python环境是2.x,即使你电脑上已经将默认python设置为了3.x,sublime运行python代码时依然匹配的是python2.x,所以需要在sublime中添加python3的运行环境(图中我已经添加好python3的环境了)

网上可以搜的到,把原链接放到这里记录下,侵删,这个是比较直观的,正好解决我的问题:https://blog.csdn.net/weixin_41768008/article/details/79859008

       1)   tools-->build system-->new build system

    2)出现如下图文件,更改文件内容

关于super() takes at least 1 argument (0 given)问题_第3张图片

上图路径是你的python3 路径,保存,文件名python3.sublime-build

3)勾选运行环境,command+b运行你的程序即可:

-----------------------------------------------------------------------------------------------------------------------------

记录下我遇到的问题:

使用python3的格式来写类的继承,出现super() takes at least 1 argument (0 given)这样的问题

关于super() takes at least 1 argument (0 given)问题_第4张图片

都说是因为我用python2来运行的,所以不正确,需要改格式,但是改了格式之后,又出现must be type, not classobj这样的问题

关于super() takes at least 1 argument (0 given)问题_第5张图片

看有的帖子说继承那儿需要换一种写法,父类名.__init__(self,参数1,参数2),这样确实可以运行出来,但是原因现在我还不太清楚,研究明白之后再记录

关于super() takes at least 1 argument (0 given)问题_第6张图片

这个时候我就想是不是sublime的问题,所以使用终端运行了使用python3写的继承代码,结果是成功的(macbook之前已经将python3设置为默认),说明就是我的su blime text 有问题,我没有添加python3的运行环境导致的,添加上就可以了关于super() takes at least 1 argument (0 given)问题_第7张图片

 

你可能感兴趣的:(小白)