首页 / PYTHON / Python--特殊方法
Python--特殊方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python--特殊方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2927字,纯文字阅读大概需要5分钟。
内容图文
![Python--特殊方法](/upload/InfoBanner/zyjiaocheng/619/6548eadbfe8d4957a537c3de5642ece0.jpg)
from math import hypot这些方法(除了 __init__)并不会在这个类自身的代码中使用。即便其他程序要使用这个类的这些方法,也不会直接调用它们,一般只有 Python 解释器会频繁地直接调用这 些方法。 ? __repr__ 如果没有实现 __repr__,当我们在控制台里打印一个向量的实例时,得到的字符串可能会是 <Vector object at 0x10e100070>。 __repr__ 和 __str__ 的区别在于,后者是在 str() 函数被使用,或是在用 print 函数打印一个对象的时候才被调用的,并且它返回的字符串对终端用户更友好。 如果你只想实现这两个特殊方法中的一个,__repr__ 是更好的选择,因为如果一个对象没有 __str__ 函数,而 Python 又需要调用它的时候,解释器会用 __repr__ 作为替代。 ? 二、特殊方法一览 字符串 / 字节序列表示形式 __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__ ? 一元运算符 __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__ ?
class Vector: def __init__(self, x=0, y=0): self.x = x self.y = y
def __repr__(self): return 'Vector(%r, %r)' % (self.x, self.y)
def __abs__(self): return hypot(self.x, self.y) def __bool__(self): return bool(abs(self)) def __add__(self, other): x = self.x + other.x y = self.y + other.y return Vector(x, y) def __mul__(self, scalar): return Vector(self.x * scalar, self.y * scalar)
内容总结
以上是互联网集市为您收集整理的Python--特殊方法全部内容,希望文章能够帮你解决Python--特殊方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。