[英]Python: Importing Libraries as Variables
class A():
def __init__(self):
install_package('abc')
import abc
def sq(self):
print(abc.sqrt(5))
背景
我正在為使用python運行應用程序(我發送它們)的客戶端編寫幫助程序類(都存儲在helper.py
)。 這些幫助程序類有助於應用程序功能。 為了在客戶端更快地部署,我編寫了一個名為install_package
的函數,它隱式調用pip install
。
所有客戶端都收到相同的helper.py
文件,但是不同的應用程序。 我發送它們的應用程序通常使用helper.py
一個類子集。
動機
所以我使用上面的類結構的原因現在非常明顯,我不想在helper.py
的開頭加載所有庫,因為庫將有相應的install_package()
。 因此,對於應用程序可能不使用所有類的客戶端,不需要安裝所有不必要的庫
問題
現在問題是使用上面的結構到A()
似乎是一個可行的選項,但我在__init__
函數中導入的包不會全局導入,因此sq()
不能使用abc
庫中的函數。 解決這個問題的最佳方法是什么? 一種方法是將庫存儲在class
本地變量中。 我該怎么做呢? 建議改變班級結構也歡迎!
這樣的事情怎么樣:
import importlib
class A():
def __init__(self):
install_package('abc')
self.abc = importlib.import_module('abc')
def sq(self):
print(self.abc.sqrt(5))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.