• Python 类的继承__init__() takes exactly 3 arguments (1 given)


    类(class),可以继承基类以便形成具有自己独特属性的类,我们在面向对象的编程中,经常用到类及其继承,可以说没有什么不是类的,今天我们就来详细探讨一下在python中,类的继承是如何做的。

    1. 我们假设有一个类叫做point,顾名思义,point就是一个点,它有横坐标和纵坐标。我们在python中创建一个point类(书上说类名称都要开头字母大写,这是国际惯例)

    2. 最简单的继承类的方式是这样:只需要在生命类的时候加一个括号和基类

    3. 这种方法并没有声明该类的构造器,这样它会隐性调用基类的构造器,所以,在实例化的时候,也要注意基类的构造器需要哪些参数,不要出现这样的错误:这种错误容易发生是因为我们在子类的声明中并没有看到什么参数,在使用的时候就容易忘记基类中需要的参数

      Traceback (most recent call last):

        File "<pyshell#11>", line 1, in <module>

          a=point1()

      TypeError: __init__() takes exactly 3 arguments (1 given)

    4. 这样来用就没问题了。

    5. 类的继承一般情况下,我们都是要重写类的构造器,然后再调用基类的构造器,不然基类的构造器在这种情况下不会自动调用。应该这样写:类point2比基类增加了一个属性z

    6. 实例化:

    7. 我们看这样一个写法特别容易出错:你能看出哪里错了吗?错误代码:

      Traceback (most recent call last):

        File "<pyshell#50>", line 1, in <module>

          b=point2(1,2,3)

        File "<pyshell#45>", line 3, in __init__

          point.__init__(x,y)

      TypeError: unbound method __init__() must be called with point instance as first argument (got int instance instead)

  • 相关阅读:
    npm显示已安装的包
    webpack安装以及一些配置
    Chrome扩展之css used 获取网页样式
    搜索引擎高级用法
    C 语言-HelloWorld
    首先不谈C语言,我们先来谈谈编程工具
    HTTP content-type
    HTTP 响应头消息
    HTTP状态码
    HTTP请求方法
  • 原文地址:https://www.cnblogs.com/anita-harbour/p/9339253.html
Copyright © 2020-2023  润新知