当它编写Python模块和功能,我有一个应该被暴露给外人一些“公共”的功能,但可以看出和本地和国内使用的只应该另外一些“私人”的职能。
我明白在python没有绝对的私有函数。 但是,什么是最好的,最整齐的,或最常用的样式区分“公共”功能和“私”的功能呢?
我列出了一些我知道的样式:
- 使用
__all__
在模块文件,以表明其“公共”功能( 什么是对蟒蛇__all__模块级变量? ) - 使用下划线以“私人”功能名的开头
是否有任何其他想法或约定的人使用?
非常感谢你!
当它编写Python模块和功能,我有一个应该被暴露给外人一些“公共”的功能,但可以看出和本地和国内使用的只应该另外一些“私人”的职能。
我明白在python没有绝对的私有函数。 但是,什么是最好的,最整齐的,或最常用的样式区分“公共”功能和“私”的功能呢?
我列出了一些我知道的样式:
__all__
在模块文件,以表明其“公共”功能( 什么是对蟒蛇__all__模块级变量? ) 是否有任何其他想法或约定的人使用?
非常感谢你!
从Python的类模块文件:
不能从除对象内访问私有”实例变量不会在Python存在。 然而,存在其后面是最Python代码约定:以下划线前缀(例如_spam)应被视为该API的非公共部分(无论它是一个函数,方法或数据成员)的名称。 它应该被视为一个实现细节,如有更改恕不另行通知。
由于有一个有效的用例为类私有成员(即避免与子类定义的名称名称的名称冲突),有这样一个机制的支持有限,叫名字改编。 形式__spam的任何标识符(至少两个前导下划线,至多一个结尾下划线)的文本上与_classname__spam,classname即当前的类名剥离前导下划线(一个或多个)所取代。 这种混淆不关于标识符的语法位置来完成,只要它一类的定义内发生。