建议如何在Python中使用自定义双下划线变量?

时间:2014-02-05 20:32:23

标签: python naming-conventions

我想知道,是否推荐/ Pythonic在Python脚本中定义和使用自定义双下划线变量/函数?例如,SQLAlchemy中使用的__tablename____validateitem__()(在将__setitem__()应用到项目之前验证项目的自定义函数)。

如果它确实定义了魔法发生的事情,或者确实以特殊的方式使用了特定的变量/函数(如上面的两个例子),我觉得使用它们是一个好主意。

我对最佳编码实践和使用这种命名的潜在风险的论点感兴趣。

1 个答案:

答案 0 :(得分:4)

来自PEP8:

  

__double_leading_and_trailing_underscore__:生活在用户控制的命名空间中的“神奇”对象或属性。例如。 __init____import____file__。不要发明这样的名字;只能按照文件记录使用它们。

因此,建议不要对自己的变量使用双下划线语法。