python魔法方法,自学python的方法

  python魔法方法,自学python的方法

  什么是Python魔法方法

  魔法就像它的名字一样神奇。它总能在你需要的时候给你提供一个让你的想法实现的方法。Magic指的是已经包含在Python中并被双下划线包围的方法。当执行特定操作时,会自动调用这些方法。它们是Python面向对象智慧的结晶。对于初学者来说,掌握Python的神奇方法尤为重要。

  为什么要使用Python魔法方法

  使用Python的魔法可以让Python的自由度更高。当不需要重写时,魔术方法可以默认生效。当需要重写时,用户可以根据自己的需要重写一些方法,以满足自己的期望。而且众所周知,Python是支持面向对象语言Python的基础魔法,使得Python更好的面向对象。

  魔法方法名

  说明

  基础魔法方法(较为常用)

  __new__(cls[,])1.实例化对象时调用的第一个方法

  2.它的参数直接传递给__init__方法进行处理。

  3.一般我们不重写方法__init__(self[,])施工方法。类初始化时,调用__del__(self)析构函数方法,实例化对象完全销毁时(实例化对象的所有指针都销毁时)__call__(self[,args.]).B) Call x.__call__(a,B)__len__(self)定义被len()调用时的行为__repr__(self)定义被repr()调用时的行为__str__(self)定义被str()调用时的行为_ _ bytes _ (self)定义被hash()调用时的行为__bool__(self)定义被bool()调用时的行为,应返回True或false _ _ format _ _ (self,format _ spec)定义被format()调用时的行为属性相关的方法

  n>__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之魔法方法的详细内容,更多请关注盛行IT软件开发工作室其它相关文章!

  

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: