Python 魔术方法及调用方式
| 魔术方法 | 调用方式 | 解释 |
|---|---|---|
| __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 魔术方法及调用方式的更多相关文章
- Python 魔术方法指南
入门 构造和初始化 构造定制类 用于比较的魔术方法 用于数值处理的魔术方法 表现你的类 控制属性访问 创建定制序列 反射 可以调用的对象 会话管理器 创建描述器对象 持久化对象 总结 附录 介绍 此教 ...
- Python 魔术方法笔记
魔术方法总是被__包围, 如__init__ , __len__都是常见的魔术方法,这里主要写一下我遇到的一些魔术方法 setitem 对某个索引值赋值时 即可以进行赋值操作,如 def __seti ...
- python魔术方法
在类中有一些特殊的方法具有特殊的意义,比如__init__和__del__方法,它们的重要性我们已经学习过了. 一般说来,特殊的方法都被用来模仿某个行为.例如,如果你想要为你的类使用x[key]这样的 ...
- 记一次 Apache HUE 优化之因使用 Python 魔术方法而遇到的坑
最近的工作是基于 Apache HUE 做二次开发.刚接手 HUE 的代码的时候,内心是崩溃的:开源的代码,风格很多种, 代码比较杂乱; 虽是基于 Django 开发的,但是项目的结构改变很大; 很多 ...
- Python魔术方法-Magic Method
介绍 在Python中,所有以"__"双下划线包起来的方法,都统称为"Magic Method",例如类的初始化方法 __init__ ,Python中所有的魔 ...
- python魔术方法总结
获取属性 __ getattr __(self, name) 定义当用户试图获取一个不存在的属性时的行为 __ getattribute __(self, name) 定义当该类的属性被访问时的行为 ...
- 032.Python魔术方法__new__和单态模式
一 __new__ 魔术方法 1.1 介绍 触发时机:实例化类生成对象的时候触发(触发时机在__init__之前) 功能:控制对象的创建过程 参数:至少一个cls接受当前的类,其他根据情况决定 返回值 ...
- [python]魔术方法
一.初始化: 1.__new__方法,初始化过程中第一个用到的方法(用处不大). 2.之后,__init__方法,构造方法. 3.最后,在对象回收时,调用__del__方法.如果解释器退出时,对象还存 ...
- php -- 魔术方法 之 调用方法:__call()、__callStatic()
方法重载:当调用一个不存在或者权限不够的方法的时候,会自动调用__call()方法 public function __call($name,$args){} :用对象调用方法 public sta ...
随机推荐
- Poj 2602 Superlong sums(大数相加)
一.Description The creators of a new programming language D++ have found out that whatever limit for ...
- SYS/BIOS实例分析
SYS/BIOS简介 SYS/BIOS是一个可扩展的实时内核(或者说是操作系统),其提供了许多模块化的APIs(应用程序接口),支持抢占式多线程,硬件抽象,实时分析和配置工具,其设计目的是为了最大限度 ...
- shock编程
Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序.要学Internet上的TCP/IP网络编程,必须理解Socket ...
- mysql命令之一:mysql常用命令之一
一.登录 1.本地登录:MySQL 连接本地数据库,用户名为“root”,密码“123”(注意:“-p”和“123” 之间不能有空格) C:\>mysql -h localhost -u roo ...
- [置顶]
什么是C语言结构体字节对齐,为什么要对齐?
一.概念 对齐跟数据在内存中的位置有关.如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐.比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的. ...
- go 语言 基础 类型(1)
变量 使用关键字 var定义变量,自动初始化为0值.如果提供初始化值,可省略变量类型,由编译器自动推断. 在函数内部可以使用 := 方式定义变量 func main() { x := 123 } 可一 ...
- linux日常管理-vmstat命令
系统负载用w查看.是什么原因造成了系统负载.查看系统负载状态 命令:vmstat vmstat就查看一次 vmstat 1 每秒钟更新一次.按ctrl+c取消. vmstat 1 5 每秒钟更新一次, ...
- hibernate中的session的获取方法以及区别
获取sesstionFactory的方法: // sessionFactory factory = new AnnotationConfiguration.configure("hibern ...
- 如何从光盘本地安装CentOS 7图形界面(Gnome GUI)
本例中通过在CentOS 7中修改repo文件,直接从光盘或者ISO镜像文件安装Gnome图形界面(Gnome GUI),从而避免耗时从官网或镜像下载. 1.首先确保光盘或者ISO镜像文件正确连接到客 ...
- Mysql 增量备份和全量备份
全量备份: # vim /root/DBFullyBak.sh //添加以下内容 #!/bin/bash # Program # use mysqldump to Fully backup mysql ...