深入学习Python之魔法方法-Python教程

资源魔 36 0

甚么是Python邪术办法

邪术办法就好像它的名字同样神秘,总能正在你需求的时分为你提供某种办法来让你的设法主意完成。邪术办法是指Python外部曾经蕴含的,被双下划线所突围的办法,这些办法正在进行特定的操作时会主动被挪用,它们是Python面向工具下智慧的结晶。初学者把握Python的邪术办法也就变患上尤其首要了。

为何要应用Python邪术办法

应用Python的邪术办法能够使Python的自在度变患上更高,当没有需求重写时邪术办法也能够正在规则的默许状况下失效,正在需求重写时也能够让应用者依据本人的需要来重写局部办法来达到本人的等待。并且家喻户晓Python是支持面向工具的言语Python的根本邪术办法就使患上Python正在面临工具方面做患上更好。

邪术办法名

阐明

根底邪术办法(较为罕用)

__new__(cls[, ...])1.实例化工具时第一个被挪用的办法
2.其参数间接通报给__init__办法解决
3.咱们普通没有会重写该办法
__init__(self[, ...])结构办法,初始化类的时分被挪用
__del__(self)析构办法,当实例化工具被彻底销毁时被挪用(实例化工具的一切指针都被销毁时被挪用)
__call__(self[, args...])容许一个类的实例像函数同样被挪用:x(a, b) 挪用 x.__call__(a, b)
__len__(self)界说当被 len() 挪用时的行为
__repr__(self)界说当被 repr() 挪用时的行为
__str__(self)界说当被 str() 挪用时的行为
__bytes__(self)界说当被 bytes() 挪用时的行为
__hash__(self)界说当被 hash() 挪用时的行为
__bool__(self)界说当被 bool() 挪用时的行为,应该前往 True 或 False
__format__(self, format_spec)界说当被 format() 挪用时的行为
属性相干的办法
__getattr__(self, name)界说当用户试图猎取一个没有存正在的属性时的行为
__getattribute__(self, name)界说当该类的属性被拜访时的行为
__setattr__(self, name, value)界说当一个属性被设置时的行为
__delattr__(self, name)界说当一个属性被删除了时的行为
__dir__(self)界说当 dir() 被挪用时的行为
__get__(self, instance, owner)界说当形容符的值被获得时的行为
__set__(self, instance, value)界说当形容符的值被扭转时的行为
__delete__(self, instance)界说当形容符的值被删除了时的行为
比拟操作符
__lt__(self, other)界说小于号的行为:x < y 挪用 x.__lt__(y)
__le__(self, other)界说小于等于号的行为:x <= y 挪用 x.__le__(y)
__eq__(self, other)界说等于号的行为:x == y 挪用 x.__eq__(y)
__ne__(self, other)界说没有等号的行为:x != y 挪用 x.__ne__(y)
__gt__(self, other)界说年夜于号的行为:x > y 挪用 x.__gt__(y)
__ge__(self, other)界说年夜于等于号的行为:x >= y 挪用 x.__ge__(y)
算数运算符
__add__(self, other)界说加法的行为:+
__sub__(self, other)界说减法的行为:-
__mul__(self, other)界说乘法的行为:*
__truediv__(self, other)界说真除了法的行为:/
__floordiv__(self, other)界说整数除了法的行为://
__mod__(self, other)界说取模算法的行为:%
__divmod__(self, other)界说当被 divmod() 挪用时的行为
__pow__(self, other[, modulo])界说当被 power() 挪用或 ** 运算时的行为
__lshift__(self, other)界说按位左移位的行为:<<
__rshift__(self, other)界说按位右移位的行为:>>
__and__(self, other)界说按位与操作的行为:&
__xor__(self, other)界说按位异或操作的行为:^
__or__(self, other)界说按位或操作的行为:|
反运算(相似于运算办法)
__radd__(self, other) 当被运算工具(右边的操尴尬刁难象)没有支持该运算时被挪用
__rsub__(self, other) 当被运算工具(右边的操尴尬刁难象)没有支持该运算时被挪用
__rmul__(self, other) 当被运算工具(右边的操尴尬刁难象)没有支持该运算时被挪用
__rtruediv__(self, other) 当被运算工具(右边的操尴尬刁难象)没有支持该运算时被挪用
__rfloordiv__(self, other) 当被运算工具(右边的操尴尬刁难象)没有支持该运算时被挪用
__rmod__(self, other) 当被运算工具(右边的操尴尬刁难象)没有支持该运算时被挪用
__rdivmod__(self, other) 当被运算工具(右边的操尴尬刁难象)没有支持该运算时被挪用
__rpow__(self, other) 当被运算工具(右边的操尴尬刁难象)没有支持该运算时被挪用
__rlshift__(self, other) 当被运算工具(右边的操尴尬刁难象)没有支持该运算时被挪用
__rrshift__(self, other) 当被运算工具(右边的操尴尬刁难象)没有支持该运算时被挪用
__rxor__(self, other) 当被运算工具(右边的操尴尬刁难象)没有支持该运算时被挪用
__ror__(self, other) 当被运算工具(右边的操尴尬刁难象)没有支持该运算时被挪用
增量赋值运算
__iadd__(self, other)界说赋值加法的行为:+=
__isub__(self, other)界说赋值减法的行为:-=
__imul__(self, other)界说赋值乘法的行为:*=
__itruediv__(self, other)界说赋值真除了法的行为:/=
__ifloordiv__(self, other)界说赋值整数除了法的行为://=
__imod__(self, other)界说赋值取模算法的行为:%=
__ipow__(self, other[, modulo])界说赋值幂运算的行为:**=
__ilshift__(self, other)界说赋值按位左移位的行为:<<=
__irshift__(self, other)界说赋值按位右移位的行为:>>=
__iand__(self, other)界说赋值按位与操作的行为:&=
__ixor__(self, other)界说赋值按位异或操作的行为:^=
__ior__(self, other)界说赋值按位或操作的行为:|=
一元操作符
__neg__(self)界说正号的行为:+x
__pos__(self)界说负号的行为:-x
__abs__(self)界说当被 abs() 挪用时的行为
__invert__(self)界说按位求反的行为:~x
类型转换
__complex__(self)界说当被 complex() 挪用时的行为(需求前往失当的值)
__int__(self)界说当被 int() 挪用时的行为(需求前往失当的值)
__float__(self)界说当被 float() 挪用时的行为(需求前往失当的值)
__round__(self[, n])界说当被 round() 挪用时的行为(需求前往失当的值)
__index__(self)1. 当工具是被使用正在切片表白式中时,完成整形强迫转换
2. 假如你界说了一个可能正在切片时用到的定制的数值型,你应该界说 __index__
3. 假如 __index__ 被界说,则 __int__ 也需求被界说,且前往相反的值
上下文治理(with 语句)
__enter__(self)1. 界说当应用 with 语句时的初始化行为
2. __enter__ 的前往值被 with 语句的指标或许 as 后的名字绑定
__exit__(self, exc_type, exc_value, traceback)1. 界说当一个代码块被执行或许终止后上下文治理器应该做甚么
2. 普通被用来解决异样,肃清工作或许做一些代码块执行终了之后的一样平常工作
容器类型(普通用于操作容器类)
__len__(self)界说当被 len() 挪用时的行为(普通前往容器类的长度)
__getitem__(self, key)界说猎取容器中指定元素的行为,相称于 self[key]
__setitem__(self, key, value)界说设置容器中指定元素的行为,相称于 self[key] = value
__delitem__(self, key)界说删除了容器中指定元素的行为,相称于 del self[key]
__iter__(self)界说当迭代容器中的元素的行为
__reversed__(self)界说当被 reversed() 挪用时的行为
__contains__(self, item)界说当应用成员测试运算符(in 或 not in)时的行为

保举学习:Python视频教程

以上就是深化学习Python之邪术办法的具体内容,更多请存眷资源魔其它相干文章!

标签: Python python教程 python编程 python使用问题 魔法方法

抱歉,评论功能暂时关闭!