A Guide to Python's Magic Methods
2021-07-01 20:04
标签:length 实例 self 算术 sizeof type size 定义 lex Book Source:[https://rszalski.github.io/magicmethods/] magic methods: 名称前后有双下划线的方法 初始化类实例时,__new__ 方法比__init__方法首先被调用 __del__:当被作为垃圾回收时调用的方法,可以用来做一些额外的清理工作。最好不要使用它来清理占用的资源(端口,文件流,链接),保持良好的代码习惯 两个对象的比较通常是比较这两个对象的引用 __eq__: 可用于 == 比较 __ne__:可用于 != 比较 __lt__:可用于
__gt__:可用于 > 比较 __le__:可用于 《= 比较 __ge__:可用于 >= 比较 __cmp__: self other 返回正数,可用于以上所有比较 优先使用__gt__(), __lt__(), __eq__(),如果找不到则使用__cmp__() string 类型默认是按照字母表前后顺序比较大小的 也可用装饰器@total_ordering 2.7+/3.4+ 一元运算操作符和方法: __pos___: +some_object __neg__: -some_object _abs__: abs(some_object) __invert__:~some_object(取反操作符) __round__:round(some_object) __floor__:math.floor(向下取整) __ceil__:math.ceil(向上取整) __trunc__:math.trunc(Truncates x to the nearest Integral toward 0.) __add__:加法 __sub__:减法 __mul__:乘法 __floordiv__:整数除法 __div__:除法 __truediv__:true division __mod__:取余% __divmod__:长除法 __pow__:平方 ** __lshift__:
__rshift__:>> __and__:& __or__:| __xor__: ^ __radd__/ __rsub__ / __rmul__ /__rfloordiv__ /__rdiv__ /__rtruediv__ /__rmod__ /__rdivmod__ /__rpow__ /__rlshift__ /__rrshift__ /__rand__ /__ror__ /__rxor__ Augmented assignment ( a += b => a = a+b => __iadd__ means += ) __iadd__/ __isub__ / __imul__ /__ifloordiv__ /__idiv__ /__itruediv__ /__imod__ /__idivmod__ /__ipow__ /__ilshift__ /__irshift__ /__iand__ /__ior__ /__ixor__ ___int__ /__long__ /__float__ /__complex__ /__oct__ /__hex__ /__index__ /__trunc__ /__coerce__ __str__:str() __repr__:repr() __unicode__:unicode() __format__:格式化 __hash__:hash() __nonzero__:bool() __dir__:dir() __sizeof__:sys.getsizeof() __len__: return length __getitem__: self[key] __setitem__:self[key]=value __delitem__:del self[key] __iter__:return iterator => for item in object: __reversed__:reversed() [class should be ordered] __contains__: 用于 in 和 not in 操作 __missing__:self[key] key不存在时被调用 self.__missing__(key) __instancecheck__:isinstance(instance,class) __subclasscheck__:issubclass(subclass,class) __call__: A Guide to Python's Magic Methods 标签:length 实例 self 算术 sizeof type size 定义 lex 原文地址:https://www.cnblogs.com/ArvinZhao/p/9635687.html构造函数和初始化
自定义类操作函数的使用
数字类型的magic method:
正规算术运算符(some_object + other)
反向运算符:(other + some_object)
Type conversion magic methods
Representing your Classes
Controlling Attribute Access
Reflection
Callable Objects 未完待续
文章标题:A Guide to Python's Magic Methods
文章链接:http://soscw.com/index.php/essay/100458.html