[英]How to import two python files as a single module in Python?
我在一個具有多種功能的 Python 項目中工作。 這些功能中的每一個都作為自己的項目使用自己的模塊。
我已經定義了一個utils_general.py模塊,其中包含每個功能都可以使用的通用功能。 此外,每個功能都有自己的utils_functionality_x.py模塊,其中包含僅在該模塊中使用的功能。 我的項目結構如下:
.
+-- __init__.py
+-- src
| +-- utils_general.py
| +-- functionality_1.py
| | +-- __init__.py
| | +-- main_functionality_1.py
| | +-- utils_functionality_1.py
| +-- functionality_2.py
| | +-- __init__.py
| | +-- main_functionality_2.py
| | +-- utils_functionality_2.py
+-- .gitignore
+-- README.md
在上面的例子中,在main_functionality_1.py 中,將使用來自utils_general.py和來自utils_functionality_1.py 的函數。 同樣,在main_functionality_2.py 中,它將使用來自utils_general.py和來自utils_functionality_2.py 的函數。
我想導入 utils 文件的所有功能,就好像它是單個模塊一樣。 我的意思是,我想讓utils_functionality_1.py “繼承” utils_general.py的功能。 這個想法類似於類繼承,但是這兩個文件是完全函數式的(在utils_general.py和utils_functionality_1.py中沒有定義類,只有函數)。
例如,這將導致在main_functionality_1.py我可以訪問到utils_general.py和utils_functionality_1.py的功能名為utils
(注意,沒有任何功能在utils_general.py和utils_functionality_1.py相同的名稱)。 例如,我想做這樣的事情(這行不通):
# This is pseudo-code and won't work
import src.utils_general as utils
import src.functionality_1.utils_functionality_1 as utils
我能想到的就是將utils_general.py的函數導入utils_functionality_1.py ,然后創建一個可以從外部調用的包裝函數。 像這樣的東西:
utils_functionity_1.py 中的代碼:
# Code in utils_functionality_1.py
import src.utils_general as utils_general
def function_general(*args, **kwargs):
return utils_general.function_general(*args, **kwargs)
有沒有更好的方法/良好做法來在 Python 中的模塊之間進行這種“偽繼承”?
您必須在utils_functionality_1
從utils_general
導入所有名稱, utils_general
此而已。
# utils_functionality_1.py
from utils_general import *
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.