我读了PEP 8,想知道(假想的)我是否创建一个名为__foo__
的对象是个好主意。 PEP 8对此__double_leading_and_trailing_underscore__
说明了这一点:
永远不要发明这样的名字;只记录使用它们。
我的问题是:谁?
我是程序员。我为其他程序员编写了一个API。 Python由程序员实现。实现的语言参考是由程序员或至少是程序员编写的,程序员使用我的API会编写一些可能会被其他程序员使用或不会使用的东西。
现在这个展开了,哪个程序员是PEP 8,当他们说“从不发明这样的名字”时?
显然鼓励有人发明这样的名字,因为它们存在,而其他人则不经意这样做。
哪一组程序员应该“从不发明这样的名字”?
答案 0 :(得分:11)
您不建议在API中使用此类名称,是的,因为如果 Python核心开发人员为Python本身选择相同的名称,您将会失败,您的API可能会中断。
因此,如果您不是Python核心开发人员或编写可能有一天会成为Python标准库或核心语言定义的一部分的PEP,请尝试远离在API中使用dunder名称。