Python 操作符重载
目录

所有的都是object,instance是一种类型,type也是一种类型。 Python does not distinguish between properties and methods

general object method:

Method Overloads Comment
__new__ new函数 创建instance并返回,可用于immutable类型instance创建
__init__ 构造函数 instance初始化
__del__ 析构函数 instance销毁
__repr__ 打印转换 “official” string, debug, 可代替__str__
__str__ 打印转换 “informal” string
__unicode__ unicode输出 返回unicode对象
__lt__ 小于 X<Y
__le__ 小于等于 X<=Y
__eq__ 等于 X=Y
__ne__ 不等于 X!=Y
__gt__ 大于 X>Y
__ge__ 大于等于 X>=Y
__cmp__ 比较 X==Y,X<Y
__hash__ 哈希值 __cmp____eq__组合;用户定义类型返回的值从id()而来
__nonzero__ 真值测试 如果没定义,则调用__len__

built-in attribute access method:

Method Overloads Comment
__getattr__ 返回属性值
__getattribute__ 返回属性值 适用于new-style class, 先于getattr调用
__setattr__ 设置属性值 self.dict[name] = value
__delattr__ 删除属性 del obj.name调用此方法
Method Overloads Comment
__get__
__set__
__del__

发表评论