| |
|
开发:
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面向对象 |
魔法函数 ????????魔法函数名字是固定的。一般情况下我们不需要通过明显的方式调用它们,但是它们会在特定阶段自动执行。 ??__init__函数,它可以在实例化对象的时候修改属性的值
????????????????魔法函数写在类里面,所以init函数的至少有一个参数self。通过参数给要修改的属性传参,一般参数名往往和属性名一致 ????????一旦写了__init__函数,并且__init__函数除了self以外还有其他参数,就需要为__init__函数除了self以外的参数传入值。也可以给__init__函数的参数设置默认值。 ????????????????__str__函数,该函数要求返回一个字符串,这个字符串的信息要能够把对象的信息组织起来,当我们使用print函数打印对象的时候,实际上打印的就是__str__函数返回的字符串。
封装 ????????公有成员是可以公开使用的,即可以在类的内部进行访问,也可以在外部程序中使用。Python中类的成员函数、成员变量默认都是公开的。 ????????私有成员在类的外部不能直接访问,一般在类的内部进行访问和操作,或者在类的外部通过调用对象的公有成员方法来访问,这是类的封装特性的重要体现。 ????????__xxx:以两个下划线开头,表示类的私有成员,一般只有类对象自己能访问,子类对象也不能直接访问该成员,但可以通过“对象名._类名__xxx”这样的特殊方式来访问。
继承 单继承 ????????面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制。继承用于指定一个类将从其父类获取其大部分或全部功能。 ????????它是面向对象编程的一个特征。这是一个非常强大的功能,方便用户对现有类进行几个或多个修改来创建一个新的类。新类称为子类或派生类,从其继承属性的主类称为基类或父类。 ????????子类或派生类继承父类的功能,向其添加新功能。它有助于代码的可重用性。继承的语法如下所示。
只需要继承基类这个动作,就可以访问到基类的属性和方法了,它提高了代码的可扩展性。 ?????????如果派生类中有__init__()方法,那么基类的__init__()方法不会被自动调用,它需要在其派生类的构造中专门调用。 ?????????如果派生类中没有__init__()方法,且基类中有__init__()方法,那么基类的__init__()方法会被自动调用 ?????????调用父类的方法有三种: ????????????????方法1:父类名字.父类中的方法名(self,[参数1,参数2,参数3,……]) ????????????????方法2:super().父类中的方法名([参数1,参数2,参数3,……]) ????????????????方法3:super(当前类的名字,self).父类中的方法名([参数1,参数2,参数3,……])
?????????Python总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找。 任何事情都有利有弊:继承的一个弱点就是,可能特殊的类又有其他特殊的地方,又会定义一个类,其下也可能再定义类,这样就会造成继承的那条线越来越长,使用继承的话,任何一点小的变化也需要重新定义一个类,很容易引起类的爆炸式增长,产生一大堆有着细微不同的子类。所以有个“多用组合少用继承”的原则。 多重继承 ????????Python子类可以继承一个基类,也可以继承多个基类,这就是多重继承。类的多重继承的语法如下。????
????在Python3.x版本其寻找方法遵循MRO原则,可以通过类.__mro__属性输出对应的方法寻找顺序。 注意:__mro__属性显示指定类的所有继承脉络和继承顺序,假如这个指定的类不具有某些方法和属性, 但与其有血统关系的类中具有这些属性和方法,则在访问这个类本身不具有的这些方法和属性时,会按照__mro__显示出来的顺序一层一层向后查找,直到找到为止。
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/16 4:24:14- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |