[英]Python modules with submodules and functions
我有一个关于像numpy这样的库如何工作的问题。 当我导入numpy
,我可以访问大量内置类、函数和常量,例如numpy.array
、 numpy.sqrt
等。
但是在 numpy 中还有其他子模块,例如numpy.testing
。
这是怎么做的? 以我有限的经验,带有子模块的模块只是带有__init__.py
文件的文件夹,而带有函数/类的模块是实际的 python 文件。 如何创建一个也有函数/类的模块“文件夹”?
包含.py
文件和__init__.py
文件夹称为package
。 包含类和函数的文件之一是module
。 文件夹嵌套可以为您提供子包。
例如,如果我有以下结构:
mypackage
__init__.py
module_a.py
module_b.py
mysubpackage
__init__.py
module_c.py
module_d.py
我可以导入mypackage.module_a
或mypackage.mysubpacakge.module_c
等等。
您还可以通过将该代码放在__init__.py
来向mypackage
添加函数(如您提到的 numpy 函数)。 虽然这通常被认为是丑陋的。
如果您查看numpy 的__init__.py
您会看到其中有很多代码 - 其中很多是定义这些顶级类和函数。 __init__.py
代码是加载包时执行的第一件事。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.