| |
|
开发:
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基础(2) -> 正文阅读 |
|
[Python知识库]python基础(2) |
10?魔法方法10.1?构造和析构10.1.1 _ _init_ _(self[, ...])????????它相当于其他面向对象编程语言的构造方法,也就是类在实例化成对象的时候首先会调用的一个方法。这个构造方法可以用也可以不用,根据实际需求来就行。 ????????需要注意的是,_ _init_ _()方法的返回值一定是None,不能是其他。所以,只有在需要进行初始化的时候才重写_ _init_ _()方法。这个_ _init_ _()并不是实例化对象时第一个被调用的魔法方法。 10.1.2?_ _new_ _(cls[, ...])????????事实上,_ _new_ _()才是在一个对象实例化的时候调用的第一个方法。它与其他魔法方法不同,它的第一个参数不是self而是这个类(cls),而其他的参数会直接传递给_ _init_ _()方法。 ????????_ _new_ _()方法需要返回一个实例对象,通常是cls这个类实例化的对象,当然也可以返回其他对象。_ _new_ _()方法平时很少去重写它,一般让Python用默认的方案执行就可以了。但是有一种情况需要重写这个魔法方法,就是当继承一个不可变的类型的时候,它的特性就显得尤为重要了。 10.1.3 _ _del_ _(self)????????如果说_ _init_ _()和_ _new_ _()方法是对象的构造器的话,那么Python也提供了一个析构器,称为_ _del_ _()方法。当对象将要被销毁的时候,这个方法就会被调用。但一定要注意的是,并非del x就相当于自动调用x._ _del_ _(),_ _del_ _()方法是当垃圾回收机制回收这个对象的时候调用的。 10.2?算术运算????????Python 2.2以后,对类和类型进行了统一,做法就是将int()、float()、str()、list()、tuple()这些BIF转换为工厂函数。普通的BIF应该是<class 'builtin_function_or_method'>,而工厂函数则是<class 'type'>(类)。 ? ? ? ? 从下面例子看出对象是可以进行计算的。 ????????Python的魔法方法还提供了自定义对象的数值处理,通过对下面这些魔法方法的重写,可以自定义任何对象间的算术运算。 10.2.1?常见的算术运算????????举个例子来说明: ?????????有需要再针对每周方法细致研究吧。 10.2.2?反运算????????一些反运算相关的魔法方法: ????????这里的反运算相关的魔法方法与上一节介绍的算术运算相关的魔法方法保持一一对应的关系,不同之处就是反运算的魔法方法多了一个“r”,例如,_ _add_ _()就对应_ _radd_ _()。实现方式就是:如果a对象的_ _add_ _()方法没有实现或者不支持相应的操作,那么Python就会自动调用b的_ _radd_ _()方法。 ????????举例说明: 10.2.3?一元操作符????????Python支持的一元操作符:_ _neg_ _()表示正号行为;_ _pos_ _()表示定义负号行为;而_ _abs_ _()表示定义abs()函数(取绝对值)被调用时的行为;_ _invert_ _()表示定义按位取反的行为。 10.3?属性访问 10.4?描述符(property的原理) 10.5?定制序列 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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 12:06:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |