簡體   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