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

标签 python function module

我有一个关于图书馆如何喜欢 numpy 的问题工作。当我导入 numpy 时,我可以访问大量内置类、函数和常量,例如 numpy.arraynumpy.sqrt

但是在 numpy 中还有额外的子模块,例如 numpy.testing

这是怎么做到的?以我有限的经验,带有子模块的模块只是带有 __init__.py 文件的文件夹,而带有函数/类的模块是实际的 python 文件。如何创建一个也有函数/类的模块“文件夹”?

最佳答案

包含.py 文件和__init__.py 的文件夹称为。其中一个包含类和函数的文件是 module。文件夹嵌套可以给你分包。

例如,如果我有以下结构:

  mypackage
     __init__.py
     module_a.py
     module_b.py
        mysubpackage
             __init__.py
             module_c.py
             module_d.py

我可以导入 mypackage.module_amypackage.mysubpackage.module_c 等等。

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

如果你看numpy's __init__.py 你会在那里看到很多代码——其中很多是定义这些顶级类和函数。 __init__.py 代码是加载包时首先执行的代码。

关于具有子模块和函数的 Python 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18555193/

相关文章:

python - 异常。类型错误 : __init__() takes exactly 1 argument (3 given)

function - Common Lisp : The Remove Function, 它是如何使用的?

c - 如何编写 Makefile 以从一个源生成两个可执行文件?

Python - 在递归函数中使用共享变量

python - 查找Python中调用Ackerman函数的次数

windows - 尝试为Python安装正则表达式

javascript - 如何使用 module.exports 和 require() 在 Node.js 中同时导出类和父类(super class)?

Python:模拟模块而不导入它或不需要它存在

python - 自动在文件夹中创建文件(Python)

javascript - 如何在 JavaScript 中获取函数正文?