繁体   English   中英

带有子模块和函数的 Python 模块

[英]Python modules with submodules and functions

我有一个关于像numpy这样的库如何工作的问题。 当我导入numpy ,我可以访问大量内置类、函数和常量,例如numpy.arraynumpy.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_amypackage.mysubpacakge.module_c等等。

您还可以通过将该代码放在__init__.py来向mypackage添加函数(如您提到的 numpy 函数)。 虽然这通常被认为是丑陋的。

如果您查看numpy 的__init__.py您会看到其中有很多代码 - 其中很多是定义这些顶级类和函数。 __init__.py代码是加载包时执行的第一件事。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM