[英]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.