python 特殊方法(dunder-getitem)

python的特殊方法使得python的编程方式更加的统一规范。
python的特殊方法是被python解释器直接调用的,我们不需要直接调用它。也就是说部能写成object.len(),而应该写成len(object)。len()会直接调用object.__len()__方法。
如果是python的内置类型,比如list/str/bytearray,Cpython会直接读取PyVarObject的ob_size的属性。
for i in x这个语句背后调用的是x.iter()方法

非计算的特殊方法

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

参考:
https://rszalski.github.io/magicmethods/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值