簡體   English   中英

Python:將庫導入為變量

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM