流畅的 Python(7):Python 数据模型 1.3

阅读数:8 2019 年 11 月 20 日 16:50

流畅的Python(7):Python 数据模型 1.3

内容简介
本书致力于帮助 Python 开发人员挖掘这门语言及相关程序库的优秀特性,避免重复劳动,同时写出简洁、流畅、易读、易维护,并且具有地道 Python 风格的代码。本书尤其深入探讨了 Python 语言的高级用法,涵盖数据结构、Python 风格的对象、并行与并发,以及元编程等不同的方面。

(特殊方法一览)

Python 语言参考手册中的“ Data Model ”一章列出了 83 个特殊方法的名字,其中 47 个用于实现算术运算、位运算和比较操作。

表 1-1 和表 1-2 列出了这些方法的概况。

这些表并没有完全按照官方文档分组。

表 1-1:跟运算符无关的特殊方法

类别 方法名
字符串 / 字节序列表示形式 __repr____str____format____bytes__
数值转换 __abs____bool____complex____int____float____hash____index__
集合模拟 __len____getitem____setitem____delitem____contains__
迭代枚举 __iter____reversed____next__
可调用模拟 __call__
上下文管理 __enter____exit__
实例创建和销毁 __new____init____del__
属性管理 __getattr____getattribute____setattr____delattr____dir__
属性描述符 __get____set____delete__
跟类相关的服务 __prepare____instancecheck____subclasscheck__

表 1-2:跟运算符相关的特殊方法

类别 方法名和对应的运算符
一元运算符 __neg__ -__pos__ +__abs__ abs()
众多比较运算符 __lt__ <__le__ <=__eq__ ==__ne__ !=__gt__ >__ge__ >=
算术运算符 __add__ +__sub__ -__mul__ *__truediv__ /__floordiv__ //__mod__ %__divmod__ divmod()__pow__ **pow()__round__ round()
反向算术运算符 __radd____rsub____rmul____rtruediv____rfloordiv____rmod____rdivmod____rpow__
增量赋值算术运算符 __iadd____isub____imul____itruediv____ifloordiv____imod____ipow__
位运算符 __invert__ ~__lshift__ <<__rshift__ >>__and__ &__or__ \|__xor__ ^
反向位运算符 __rlshift____rrshift____rand____rxor____ror__
增量赋值位运算符 __ilshift____irshift____iand____ixor____ior__

当交换两个操作数的位置时,就会调用反向运算符(b * a 而不是 a * b)。增量赋值运算符则是一种把中缀运算符变成赋值运算的捷径(a = a * b 就变成了 a *= b)。第 13 章会对这两者作出详细解释。

流畅的Python(7):Python 数据模型 1.3

图灵地址 https://www.ituring.com.cn/book/1564

评论

发布