python的magic methods
(由于markdown语法问题,下面的所有的方法名字前后的——都被识别为加粗语法)
| 魔术方法 | 调用方式 | 解释 |
|---|---|---|
| new(cls [,...]) | instance = MyClass(arg1, arg2) | new 在创建实例的时候被调用 |
| init(self [,...]) | instance = MyClass(arg1, arg2) | init 在创建实例的时候被调用 |
| cmp(self, other) | self == other, self > other, 等。 | 在比较的时候调用 |
| pos(self) | +self | 一元加运算符 |
| neg(self) | -self | 一元减运算符 |
| invert(self) | ~self | 取反运算符 |
| index(self) | x[self] | 对象被作为索引使用的时候 |
| nonzero(self) | bool(self) | 对象的布尔值 |
| getattr(self, name) | self.name # name 不存在 | 访问一个不存在的属性时 |
| setattr(self, name, val) | self.name = val | 对一个属性赋值时 |
| delattr(self, name) | del self.name | 删除一个属性时 |
| __getattribute(self, name) | self.name | 访问任何属性时 |
| getitem(self, key) | self[key] | 使用索引访问元素时 |
| setitem(self, key, val) | self[key] = val | 对某个索引值赋值时 |
| delitem(self, key) | del self[key] | 删除某个索引值时 |
| iter(self) | for x in self | 迭代时 |
| contains(self, value) | value in self, value not in self | 使用 in 操作测试关系时 |
| concat(self, value) | self + other | 连接两个对象时 |
| call(self [,...]) | self(args) | “调用”对象时 |
| enter(self) | with self as x: | with 语句环境管理 |
| exit(self, exc, val, trace) | with self as x: | with 语句环境管理 |
| getstate(self) | pickle.dump(pkl_file, self) | 序列化 |
| setstate(self) | data = pickle.load(pkl_file) | 序列化 |

python的magic methods的更多相关文章
- A Guide to Python's Magic Methods
Book Source:[https://rszalski.github.io/magicmethods/] magic methods: 名称前后有双下划线的方法 构造函数和初始化 初始化类实例时, ...
- Python 的 Magic Methods 指南(转)
介绍 本指南是数月博客的总结.主题是魔术方法. 什么是魔术方法呢?它们是面向对象Python语言中的一切.它们是你可以自定义并添加“魔法”到类中的特殊方法.它们被双下划线环绕(比如__init__或_ ...
- Pthon魔术方法(Magic Methods)-描述器
Pthon魔术方法(Magic Methods)-描述器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.描述器概述 1>.描述器定义 Python中,一个类实现了&quo ...
- Pthon魔术方法(Magic Methods)-反射
Pthon魔术方法(Magic Methods)-反射 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.反射概述 运行时,区别于编译时,指的时程序被加载到内存中执行的时候. 反射 ...
- Pthon魔术方法(Magic Methods)-上下文管理
Pthon魔术方法(Magic Methods)-上下文管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.上下文管理方法 __enter__: 进入与此对象相关的上下文.如果 ...
- Pthon魔术方法(Magic Methods)-可调用对象
Pthon魔术方法(Magic Methods)-可调用对象 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.可调用对象方法 __call__: 类中定义一个该方法,实例就可以像 ...
- Pthon魔术方法(Magic Methods)-容器相关方法
Pthon魔术方法(Magic Methods)-容器相关方法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.容器相关方法汇总 __len__: 内建函数len(),返回对象的 ...
- Pthon魔术方法(Magic Methods)-运算符重载
Pthon魔术方法(Magic Methods)-运算符重载 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Python运算符对应的魔术方法 1>.比较运算符 <: ...
- Pthon魔术方法(Magic Methods)-bool
Pthon魔术方法(Magic Methods)-bool 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.bool方法 __bool__: 内建函数bool(),或者对象放在逻 ...
随机推荐
- 正在从 Windows 应用商店下载... 无法从 Windows 应用商店下载。请检查网络连接。
手贱关掉了一下服务,再打开就是嘛
- 【牛客网-剑指offer】用两个栈实现队列
题目: 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 知识点及概念: 队列:队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而 ...
- ionic2(3) 密码键盘组件 ionic2-pincode-input 使用
1.效果展示: 2.安装: npm install ionic2-pincode-input --save 3.app.module.ts配置 app.module.ts import { NgMod ...
- 【JZOJ1914】【BZOJ2125】最短路
description 给一个N个点M条边的连通无向图,满足每条边最多属于一个环,有Q组询问,每次询问两点之间的最短路径. analysis 建出圆方树后,可以知道仙人掌上每一个方点连着的边双其实就是 ...
- jupyter|浏览器启动问题|“ImportError: DLL load failed: 找不到指定的模块”sqlite3
问题: 1.安装好Anconda3后,开始——>打开jupyter notebook时 默认浏览器无法启动 2.开始打开——>anaconda prompt 输入jupyter noteb ...
- Delphi ComboBox组件 style=csDropDownlist 的赋值方法
赋值方法: ComboBox1.Items.Add( '文本 '); ComboBox1.ItemIndex := ComboBox1.Items.IndexOf( '文本 '); 清空: Combo ...
- delphi 设备函数GetDeviceCaps函数
{说明:以下内容来源于网络,修改多处错误所得 2019.10.04 } GetDeviceCaps 函数功能:该函数检索指定设备的设备指定信息.该函数经常用在操作打印机等设备中.函数原型:int Ge ...
- ruby中数组认识
a = 1...5这样赋值,a不是数组类型,1...5操作是一种枚举类型. a = ["1","2","3","4"], ...
- Mac上安装Android SDK
今天开始学习IOS,所以先买了个设备先,但是开始使用了苹果本,还是需要继续开发Android,因为那是我现在吃饭的东西,所以就需要在Mac上配置Android SDK,原以为安装SDK很简单,和Win ...
- Ubuntu 16.04系统上修改Docker镜像的存储路径 (转)
转自:https://blog.csdn.net/qihongchao/article/details/80651492 dba专门挂了一个硬盘让我放项目(测试环境)因为系统空间比较小,希望把dock ...