解读Python包结构时的一些记录

了解 python 包结构的一些记录

_... 通常用作“内部”名称,以 _ 开头的模块(包、 .py 文件)不应该被(用户、外部使用者而非内部开发人员)直接导入( import )使用

python.py 文件、模块、包和库之间的关系,注意使用 __init__.py 文件声明一个 python

不推荐使用 from ... import * 语句,这样容易引起同名函数的混乱

__name__python 内置的系统变量,用于标识当前所在模块的模块名,其值为 __main__ ,但若引入了其它模块,则 其它模块名.__name__ 的值是该模块的名称,当 import 其它模块 时,其它模块中的 if __name__ == "__main__" 中的内容不会被执行,具体内容链接:http://c.biancheng.net/view/4643.html

引入含有空格以数字开头(最好以字母和下划线开头)的模块名,应该使用 __import__("模块名")

1
__import__("含有空格或以数字开头的模块名")

当向文件导入某个模块时,导入的是该模块中那些名称不以下划线(单下划线 “_” 或者双下划线 "__" )开头的变量、函数和类。因此,如果不想模块文件中的某个成员被引入到其它文件中使用,可以在其名称前添加下划线

除此之外,还可以借助模块提供的 __all__ 变量,该变量的值是一个列表,存储的是当前模块中的一些成员(变量、函数和类)的名称。通过在模块文件中设置 __all__ 变量,当其它文件以 from 模块命 import * 的形式导入该模块时,该文件中只能使用 __all__ 列表中指定的成员,具体内容链接:http://c.biancheng.net/view/2401.html

python 中下划线的 5 种含义:https://zhuanlan.zhihu.com/p/36173202

cython (文件后缀 .pyx )是结合了 pythonc 的语法的一种语言,被编译后其源代码将转译成 cc++ 语法,并自动包装上函数调用界面生成 .pyd (或 .so ,因操作系统而异)后缀的二进制文档,即可当成普通的 python 库来调用,此内容在 wikipedia 上有详细介绍:https://zh.wikipedia.org/wiki/Cython


常常回来翻阅一下,以加深理解

C语言中文网/Python教程