Python:为什么不将"next()"称为"__next __()"

kd8*_*d88 3 python naming-conventions

我正在使用Python 2.7.

按照惯例,内置类似方法__iter__,__init__,__str__等有双下划线,以确定它们的方式.为什么功能不next()具备此功能?

在这里设有旁边的其他内置功能:https://docs.python.org/2/library/functions.html,这似乎并不像一个非常一致的约定.

Fre*_*Foo 8

内置函数没有,__因为没有内置函数.你把内置插件(比如str)与特殊方法(比如__str__)混淆了.

现在,内置调用的特殊方法next也在nextPython 2.7中调用,但该命名被认为是一个意外并__next__在Python 3中被更改为.