特殊方法和特殊属性

前面讲面向对象的时候有提过几个特殊方法,比如__init__等,这篇博客我们来总结一些可能用的到的特殊方法和特殊属性。

1、特殊方法

表1-1:跟运算符无关的特殊方法

类别方法名
字符串 / 字节序列表示形式__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__

表1-2:跟运算符相关的特殊方法

运算符正向方法反向方法就地方法说明
+__add____radd____iadd__加法或拼接
-__sub____rsub____isub__减法
*__mul____rmul____imul__乘法或重新复制
/__truediv____rtruediv____itruediv__除法
//__floordiv____rfloordiv____ifloordiv__整除
%__mod____rmod____imod__取模
divmod()__divmod____rdivmod____idivmod__返回由整除的商和模数组成的元组
**或者pow()__pow____rpow____ipow__取幂
@__matmul____rmatmul____imatmul__矩阵乘法
&__and____rand____iand__位与
|__or____ror____ior__位或
^__xor____rxor____ixor__位异或
<<__lshift____rlshift____ilshift__按位左移
>>__rshift____rrshift____irshift__按位右移

就地运算符用于增量赋值

类别方法名和对应的运算符
一元运算符__neg__ -、__pos__ +、__abs__ abs()
众多比较运算符__lt__ <、__le__ <=、__eq__ ==、__ne__ !=、__gt__ >、__ge__ >=
2、特殊属性
特殊方法含义
obj.__dict__对象的属性字典
obj.__class__对象所属的类
class.__bases__类的基类元组(多继承)
class.__base__类的基类
class.__mro__类层次结构
class.__subclasses__()子类列表

我的博客:https://blog.z7sz.top

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xingyuzhongxuan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值