我想知道,是否推荐/ Pythonic在Python脚本中定义和使用自定义双下划线变量/函数?例如,sqlAlchemy中使用的__tablename__或__validateitem __()(在将__setitem __()应用于它之前验证项目的自定义函数).
如果它确实定义了魔法发生的事情,或者确实以特殊的方式使用了特定的变量/函数(如上面的两个例子),我觉得使用它们是一个好主意.
我对最佳编码实践和使用这种命名的潜在风险的论点感兴趣.
最佳答案
来自PEP8:
__double_leading_and_trailing_underscore__
: “magic” objects or attributes that live in user-controlled namespaces. E.g.__init__
,__import__
or__file__
. Never invent such names; only use them as documented.
因此,建议不要对自己的变量使用双下划线语法.