IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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?定制序列

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-25 23:43:30  更:2021-08-25 23:43:32 
 
开发: 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-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码