带子模块和函数的Python模块

2024-04-28 22:38:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个问题,像numpy这样的库是如何工作的。当我导入numpy时,我有权访问大量内置类、函数和常量,如numpy.arraynumpy.sqrt

但是在numpy中还有其他子模块,比如numpy.testing。

怎么做到的?根据我有限的经验,带有子模块的模块只是带有__init__.py文件的文件夹,而带有函数/类的模块则是实际的python文件。如何创建同时具有函数/类的模块“文件夹”?


Tags: 模块文件函数pynumpy文件夹initsqrt
1条回答
网友
1楼 · 发布于 2024-04-28 22:38:45

包含.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's ^{} ,你会发现里面有很多代码——其中很多是定义这些顶级类和函数的。加载包时,首先执行的是__init__.py代码。

相关问题 更多 >