我知道类可以实现各种特殊的方法,比如__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
关于python - 什么时候使用 Python 特殊方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2428391/