【转】python 调用super()初始化报错“TypeError: super() takes at least 1 argument”
一、实验环境
1.Windows7x64_SP1
2.Anaconda2.5.0 + python2.7(anaconda集成,不需单独安装)
二、实验步骤
2.1 在python中有如下代码:
class father():
def __init__(self,age):
self.age = age;
def get_age(self):
print(self.age); class son(father):
def __init__(self,age):
super().__init__(age);
self.toy_number = 5;
def get_toy_number(self):
print(self.toy_number); myson = son(6)
myson.get_age()
myson.get_toy_number()
运行时报错:“TypeError: super() takes at least 1 argument(0 given)”
2.2 原因分析
该方法调用super()为在python3中的方法,而此是在python2中运行的,在python3中运行将正常。
在《python编程:从入门到实践》一书中介绍了若想在python2中运行需将
super().__init__(age)
一句改为:
super(son, self).__init__(age)
但我按此方法改后,运行时报错:“TypeError: super() argument 1 must be type, not classobj”
2.3 解决方式
上网查询资料后,得知若想要在python2中运行成功,可以改为如下两种方法:
方法一
class father(object):
def __init__(self,age):
self.age = age;
def get_age(self):
print(self.age); class son(father):
def __init__(self,age):
super(son, self).__init__(age);
self.toy_number = 5;
def get_toy_number(self):
print(self.toy_number); myson = son(6)
myson.get_age()
myson.get_toy_number()
方法二
class father():
def __init__(self,age):
self.age = age;
def get_age(self):
print(self.age); class son(father):
def __init__(self,age):
father.__init__(self,age);#注意此处参数含self
self.toy_number = 5;
def get_toy_number(self):
print(self.toy_number); myson = son(6)
myson.get_age()
myson.get_toy_number()
运行后都将得到正确答案:
参考链接:https://stackoverflow.com/questions/9698614/super-raises-typeerror-must-be-type-not-classobj-for-new-style-class
原文请参考:https://blog.csdn.net/u010812071/article/details/76038833
【转】python 调用super()初始化报错“TypeError: super() takes at least 1 argument”的更多相关文章
- Django :执行 python manage.py makemigrations 时报错 TypeError: __init__() missing 1 required positional argument: 'on_delete'
原因 执行命令 python manage.py makemigrations 报错 TypeError: __init__() missing 1 required positional argum ...
- 关于Jupyter Notebook无法自动补全(Autocompletion),报错TypeError: __init__() got an unexpected keyword argument 'column' 的解决方案
关于Jupyter Notebook无法自动补全(Autocompletion),报错TypeError: __init__() got an unexpected keyword argument ...
- python报错 TypeError: a() got multiple values for argument 'name'
[问题现象] 在一次调用修饰函数中出现了问题,折腾了一下午,一直报错 TypeError: got multiple values for argument 只是很简单的调用 from tsu2Ru ...
- python2.7 使用super关键词 报错 TypeError: must be type, not&n
错误试验代码: class Base(): def meth(self): print "i'm base" class Derived(Base): def meth(self) ...
- 执行python manage.py makemigrations时报错TypeError: __init__() missing 1 required positional argument: 'on_delete'
在执行python manage.py makemigrations时报错: TypeError: __init__() missing 1 required positional argument: ...
- python3.7的celery报错TypeError: wrap_socket() got an unexpected keyword argument '_context'
原启动方法为: 起执行任务的服务 elery worker -A celery_task -l info -P eventlet 起提交任务的服务 celery beat -A celery_task ...
- Django 生成数据库表时的报错TypeError: __init__() missing 1 required positional argument: 'on_delete'
原因及解决办法: https://www.cnblogs.com/phyger/p/8035253.html
- Python中常见的报错名称
Python中常见的报错名称 1.SyntaxError 语法错误.看看是否用Python关键字命名变量,有没有使用中文符号,运算符.逻辑运算符等符号是不是使用不规范. 2.IndentationEr ...
- appium 提示报错“TypeError: 'unicode' object is not callable”的解决方式!
这里提到的这个报错,是小错误且容易经常会犯,有时需要特别注意使用. 目的要求结果:根据某个元素的id值获取到对应id的text值,并且将获取的text值与本身存在的text值做比较,查看text值是否 ...
随机推荐
- webapi 导入excel处理数据
参考资料 https://blog.csdn.net/pan_junbiao/article/details/82935992 https://www.cnblogs.com/dansedia ...
- Windows Socket知识总结
目录 0 理解Socket 1 WinSock API 2 阻塞socket 3 非阻塞Socket 4 套接字IO模型 4.1 套接字IO模型:select(选择) 4.2 套接字IO模型:W ...
- RT-Thread点亮led
下载默认工程 https://www.rt-thread.org/ 配置rtconfig.h #define STM32F103RE //修改成自己的板子 #define RT_HSE_VALUE 8 ...
- authenticating with the app store 一直卡住--问题记录
参考链接:https://blog.csdn.net/csdn2314/article/details/90021367 authenticating with the app store 一直卡住最 ...
- java多线程执行时主线程的等待
1.通过thread.join()方式,注意:如果有多个子线程,需要将全部的线程先start,然后再join.代码示例如下: public class Main { public static ...
- SpringData系列四 @Query注解及@Modifying注解@Query注解及@Modifying注解
@Query注解查询适用于所查询的数据无法通过关键字查询得到结果的查询.这种查询可以摆脱像关键字查询那样的约束,将查询直接在相应的接口方法中声明,结构更为清晰,这是Spring Data的特有实现. ...
- Python 爬虫之 Beautifulsoup4,爬网站图片
安装: pip3 install beautifulsoup4 pip install beautifulsoup4 Beautifulsoup4 解析器使用 lxml,原因为,解析速度快,容错能力强 ...
- 桌面图标管理工具-Rolan(网上收集,仅供学习与研究,支持正版)
Rolan 是一个轻量级启动器,“你可以通过将文件拖到软件窗口中,然后通过像 QQ 一样的吸附或者键盘热键随时呼出,点击图标即可启动,使用起来非常方便快捷! 官网:https://getrolan.c ...
- JAVA大数的一些操作
参考: https://www.cnblogs.com/tonyyy/p/10433460.html https://www.cnblogs.com/wkfvawl/p/9377441.html (d ...
- Win10打开控制面板的方式
Win10打开控制面板的方式方式1:1.打开运行框 windows键 + R2.在运行框中输入 control 方式2:右击开始图标->控制面板 方式3:在命令行cmd中输入 contro ...