| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> python super函数 -> 正文阅读 |
|
[Python知识库]python super函数 |
python面向对象编程 重写普通方法和特殊的构造函数 类继承和普通方法重写类似,但是遇到重写构造函数的时候,必须调用超类的构造函数,否则可能无法正确初始化对象:
异常:SongBird没有属性hungry,因为重写了构造函数,新的构造函数没有包含任何初始化属性hungry的代码,要避免错误需要songbird的构造函数必须调用超类的构造函数,以确保基本的初始化得以执行。 有两种解决办法: 1、调用未关联的超类构造函数 2、使用函数super 什么是调用未关联的超类构造函数
添加一行代码, 对实例调用方法时,方法的参数self将自动关联到实例(称为关联的方法),如果通过类调用方法(如 使用super函数
优点: 1、不需要修改每个被重写的方法继承的类的名称,容易维护 2、在多个超类的情况下,只需要调用一次super(条件是所有超类的构造函数也是用super函数) 3、很多旧式类的super函数会自动处理 这里super首先找到父类,然后把子类的对象转换为父类的对象 ps: 一种错误
调用init的时候少了self参数,所以这种情况仅仅是调用了超类的init函数,Base().init()是新建一个Base实例,这个实例再调用Base的构造函数,也就是重新构造本实例本身吧。这样子写子类访问不到父类构造函数里的实例变量吧。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 16:47:40- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |