我想知道,是否推荐/ Pythonic在Python脚本中定义和使用自定义双下划线变量/函数?例如,SQLAlchemy中使用的__tablename__
或__validateitem__()
(在将__setitem__()
应用到项目之前验证项目的自定义函数)。
如果它确实定义了魔法发生的事情,或者确实以特殊的方式使用了特定的变量/函数(如上面的两个例子),我觉得使用它们是一个好主意。
我对最佳编码实践和使用这种命名的潜在风险的论点感兴趣。
答案 0 :(得分:4)
来自PEP8:
__double_leading_and_trailing_underscore__
:生活在用户控制的命名空间中的“神奇”对象或属性。例如。__init__
,__import__
或__file__
。不要发明这样的名字;只能按照文件记录使用它们。
因此,建议不要对自己的变量使用双下划线语法。