python类,专栏总目录:
1、python命名约定
1)所谓”内部(Internal)”表示仅模块内可用, 或者, 在类内是保护或私有的;
2)用单下划线(_)开头表示模块变量或函数是protected的(使用import * from时不会包含);
3)用双下划线(__)开头的实例变量或方法表示类内私有;
4)将相关的类和顶级函数放在同一个模块里,没必要限制一个类一个模块;
5)对类名使用大写字母开头的单词(如CapWords, 即Pascal风格), 但是模块名应该用小写加下划线的方式(如lower_with_under.py)。
6)类以C开头,枚举以E开头。
2、__all__
在模块(*.py)中使用意为导出__all__列表里的类、函数、变量等成员,否则将导出模块中所有不以下划线开头(私有)的成员,在模块中使用__all__属性可避免在相互引用时的命名冲突。
只有在执行语句 from module import * 时,__all__属性才会起作用。此时所有枚举的成员被import,而其他成员被私有化。
主要作用:在第一时间展现了模块的内容大纲,而且也更清晰的提供了外部访问接口。
2.1、在模块(*.py)中使用意为导出__all__列表里的类、函数、变量等成员
modualA.py
#
__all__=["fun1","class1"]
...
#end file modualA.py
使用:
from modualA import *
导入模块modualA里的所有成员(如果定义了__all__那么就导出列表中的所有,否则默认导出不以下划线开头的所有成员)
2.2、在包(假设pkgA,pkgA是一个文件夹)的__init__.py中意为导出包里的模块
# pkgA/__init__.py
from modualA import class1,class2
from modualB import fun1,class3
....
使用:
from pkgA import *
以上语句即执行了pkgA下的__init__.py,导入两个模块,和这两模块下的函数和类。
3.3、私有变量导出
_开头表示保护变量,__开头表示私有变量
私有属性默认是无法导出的,可以通过__all__加入该变量进行导出。
参考文章
1、python快速生成注释文档的方法
https://www.cnblogs.com/cookie1026/p/6093188.html
2、python里__all__ 属性分别于模块和包之中的用法
http://blog.csdn.net/nivana999/article/details/39620673
http://blog.csdn.net/sxingming/article/details/52903377