2024-04-28 22:38:45 发布
网友
我有一个问题,像numpy这样的库是如何工作的。当我导入numpy时,我有权访问大量内置类、函数和常量,如numpy.array、numpy.sqrt等
numpy
numpy.array
numpy.sqrt
但是在numpy中还有其他子模块,比如numpy.testing。
怎么做到的?根据我有限的经验,带有子模块的模块只是带有__init__.py文件的文件夹,而带有函数/类的模块则是实际的python文件。如何创建同时具有函数/类的模块“文件夹”?
__init__.py
包含.py文件和__init__.py的文件夹称为package。其中一个包含类和函数的文件是module。文件夹嵌套可以为您提供子包。
.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等等。
mypackage.module_a
mypackage.mysubpacakge.module_c
您还可以通过将代码放在__init__.py中,将函数添加到mypackage(就像您提到的numpy函数一样)。尽管这通常被认为是丑陋的。
mypackage
如果你看一下numpy's ^{} ,你会发现里面有很多代码——其中很多是定义这些顶级类和函数的。加载包时,首先执行的是__init__.py代码。
包含
.py
文件和__init__.py
的文件夹称为package
。其中一个包含类和函数的文件是module
。文件夹嵌套可以为您提供子包。例如,如果我有以下结构:
我可以导入
mypackage.module_a
或mypackage.mysubpacakge.module_c
等等。您还可以通过将代码放在
__init__.py
中,将函数添加到mypackage
(就像您提到的numpy函数一样)。尽管这通常被认为是丑陋的。如果你看一下numpy's ^{} ,你会发现里面有很多代码——其中很多是定义这些顶级类和函数的。加载包时,首先执行的是
__init__.py
代码。相关问题 更多 >
编程相关推荐