DNB*_*ims 19 python naming-conventions prefix
在cherryPy例如,有文件如:
__init__.py_cptools.py他们有什么不同?这是什么意思?
Mic*_*rny 24
__...__表示保留的Python 名称(文件名和其他名称).您不应使用双下划线表示法创建自己的名称; 如果您使用现有的,它们具有特殊功能.
在此特定示例中,__init__.py定义包的"主"单元; 它还会导致Python将特定目录视为包.它是您调用时使用的单位import cherryPy(并且cherryPy是目录).这在模块教程中进行了简要说明.
另一个例子是__eq__为类提供相等比较的方法.您可以直接调用这些方法(==例如,在使用运算符时隐式使用它们); 但是,较新的Python版本可能会定义更多此类方法,因此您不应该创建自己的__-names,因为它们可能会发生碰撞.您可以在数据模型文档中找到这些方法的详细列表.
_...通常用作"内部"名称.例如,_不应直接使用以...开头的模块; 类似地,_所谓的方法是私人的等等.这只是一个惯例,但你应该尊重它.
ver*_*ald 13
"Python代码样式指南 - 描述:命名样式"中详细介绍了这些和其他命名约定
简述:
__double_leading_and_trailing_underscore__:生成在用户控制的命名空间中的"魔术"对象或属性.例如__init__,__import__或__file__.不要发明这样的名字; 只记录使用它们._single_leading_underscore:弱"内部使用"指标.例如from M import *,不会导入名称以下划线开头的对象.