Skip to main content
 首页 » 编程设计

python之什么时候使用 Python 特殊方法

2025年05月04日17落叶无声

我知道类可以实现各种特殊的方法,比如__iter__, __setitem__, __len__, __setattr__ ,以及许多其他人。但是我什么时候应该使用它们呢?任何人都可以描述我想要实现它们并且它们会简化 Python 编程的典型场景吗?

谢谢,Boda Cydo。

请您参考如下方法:

我认为你基本上回答了你的问题。

熟悉特殊方法。如果您发现使用一个会使您的程序更简单,请使用它。如果您不明白它的用途,或者觉得它是一个更复杂的解决方案 - 您已经回答了问题。不要使用它。

典型的场景是:

  • 覆盖运算符

  • 捕获对不存在的属性的访问并处理该访问 (__getattr__)

  • 操作类和实例创建(__init__、__slots__、__new__)

  • 自定义字符串表示(__str__ 和 __repr__)

  • 允许可调用性(__call__)

  • 连接到方便/常用的内置语法(__getitem__、__len__ 等...)

这些内容大部分在 https://docs.python.org/reference/datamodel.html#specialnames 中介绍和 http://docs.python.org/reference/datamodel.html#special-method-names