gpt4 book ai didi

python - python 中的依赖注入(inject)(取决于模块可用性)

转载 作者:行者123 更新时间:2023-11-28 17:48:00 27 4
gpt4 key购买 nike

我正在为 GPS IDE 开发插件,我想要它的两个版本:1. GPS插件——带GPS运行2. 独立应用程序 - 在没有 GPS 的情况下运行

插件的功能之一是行突出显示。当插件作为独立应用程序运行时,这是不可能的。我为此创建了 gpshelper 类,它导入了 GPS 模块。 Import 在作为独立应用程序运行时抛出 ImportException(因为 GPS 模块不可用)。我想知道我应该如何将这个 gpshelper 模块注入(inject)我的插件。

高亮是在highlight方法调用时进行的(该方法调用gpshelper)。

可以吗,在高亮方法中我这样做:

try:
import gpshelper
except ImportError:
warnings.warn('Program is running as python app (not GPS plugin)')

也许还有其他/更好的方法可以做到这一点?

最佳答案

定义一个 gps_highlight 例程作为导入 gpshelper 的 try 部分的一部分。然后从您现有的代码中调用该例程。在 except 部分定义一个虚拟 gps_highlight 函数。这样你就可以保持你的调用代码干净:

import warnings

try:
import gpshelper
def gps_highlight(*args, **kw):
return gpshelper.highlight(*args, **kw)
except ImportError:
warnings.warn('Program is running as python app (not GPS plugin)')
def gps_highlight(*args, **kw):
return None

# after this you can safely call gps_highlight with the right parameters
# as needed by gpshelper.highlight

关于python - python 中的依赖注入(inject)(取决于模块可用性),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15260395/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com