一、实验环境

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”的更多相关文章

  1. 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 ...

  2. 关于Jupyter Notebook无法自动补全(Autocompletion),报错TypeError: __init__() got an unexpected keyword argument 'column' 的解决方案

    关于Jupyter Notebook无法自动补全(Autocompletion),报错TypeError: __init__() got an unexpected keyword argument ...

  3. python报错 TypeError: a() got multiple values for argument 'name'

    [问题现象] 在一次调用修饰函数中出现了问题,折腾了一下午,一直报错 TypeError:  got multiple values for argument 只是很简单的调用 from tsu2Ru ...

  4. python2.7 使用super关键词 报错 TypeError: must be type, not&n

    错误试验代码: class Base(): def meth(self): print "i'm base" class Derived(Base): def meth(self) ...

  5. 执行python manage.py makemigrations时报错TypeError: __init__() missing 1 required positional argument: 'on_delete'

    在执行python manage.py makemigrations时报错: TypeError: __init__() missing 1 required positional argument: ...

  6. 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 ...

  7. Django 生成数据库表时的报错TypeError: __init__() missing 1 required positional argument: 'on_delete'

    原因及解决办法: https://www.cnblogs.com/phyger/p/8035253.html

  8. Python中常见的报错名称

    Python中常见的报错名称 1.SyntaxError 语法错误.看看是否用Python关键字命名变量,有没有使用中文符号,运算符.逻辑运算符等符号是不是使用不规范. 2.IndentationEr ...

  9. appium 提示报错“TypeError: 'unicode' object is not callable”的解决方式!

    这里提到的这个报错,是小错误且容易经常会犯,有时需要特别注意使用. 目的要求结果:根据某个元素的id值获取到对应id的text值,并且将获取的text值与本身存在的text值做比较,查看text值是否 ...

随机推荐

  1. How-important-is-deep-learning-in-autonomous-driving

    Deep learning (DL) is a very interesting technology indeed and yes it does solve perception really w ...

  2. 记录微信支付开发中的小经验(errcode = 40163; errmsg = "code been used")

    今天上午客户提出问题,看了一下报错截图,应该是我更新版本时少传了一个参数,导致后续报错, 心里想着小问题,直接生产环境添加一下就行了,于是就为了我这一上午的悲剧埋下了伏笔 十分自信的把页面中的代码添加 ...

  3. RookeyFrame在线新增模块

    今天给大家演示下在线新增模块的功能,在线新增模块跟在vs中写model实体类区别不大,线上新增少了手动初始化的过程,新增后模块同样具备新增.修改.删除.查看.导入.导出.复制.批量编辑.回收站.草稿箱 ...

  4. SVN每日定时备份脚本

    SVN每日定时备份脚本: @ECHO off REM SVN安装目录 SET SVN_HOME="D:\Program Files\VisualSVNServer" REM 版本库 ...

  5. Python分页

    # -*-coding:utf-8-*- # Author:Ds from django.utils.safestring import mark_safe from django.http.requ ...

  6. GCN python 实现2:利用GCN进行节点分类

    参考:https://www.baidu.com/link?url=5oU-O_YQV8DdSTtRkgzsQ_vuwjJHyUOxqeAKhq98ZA5XtvKW8PNQwXgSlr5GpESRqh ...

  7. 更换Ubuntu软件源

    对于Ubuntu系统, 不同的版本的源都不一样,每一个版本都有自己专属的源. 而对于 Ubuntu 的同一个发行版本,它的源又分布在全球范围内的服务器上.Ubuntu 默认使用的官方源的服务器在欧洲, ...

  8. @RequestMapping和@GetMapping和PostMapping

    简介 - @GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写.该注解将HTTP Get 映射到 特定的处理方法上. - ...

  9. 配置 application.properties

    # 数据库链接信息mysql.driver=com.mysql.cj.jdbc.Drivermysql.url=jdbc:mysql://localhost:3306/mydemo?character ...

  10. 莫烦TensorFlow_03 Variable加法

    import tensorflow as tf ## 定义变量 state = tf.Variable(0, name = 'counter') #print(state.name) one = tf ...