gpt4 book ai didi

Python:仅当包存在时才定义函数

转载 作者:太空狗 更新时间:2023-10-29 20:51:35 24 4
gpt4 key购买 nike

是否可以告诉 Python 2.7 仅在包存在时解析函数定义?

我有一个在多台机器上运行的脚本。脚本中定义了一些非常有用的函数,但对于脚本执行的核心操作来说并不是必需的。一些运行脚本的机器没有函数导入的包,(并且无法在它们上安装包)。目前我必须在将 repo 克隆到那些机器上之前注释掉函数定义。另一种解决方案是维护两个不同的分支,但这更加乏味。有没有一种解决方案可以避免我们在推送之前不断注释掉代码?

函数调用时已经有解决方案,比如:

try:
someFunction()
except NameError:
print("someFunction() not found.")

最佳答案

函数定义和导入只是 Python 中的代码,和其他代码一样,您可以将它们包装在 try 中:

try:
import bandana
except ImportError:
pass # Hat-wearing functions are optional
else:
def wear(hat):
bandana.check(hat)
...

仅当 bandana 模块可用时,才会定义 wear 函数。

这是否是个好主意取决于您 - 我认为这在您自己的脚本中会很好,但您可能不想在其他人将使用的代码中执行此操作。另一个想法可能是做这样的事情:

def wear(hat):
try:
import bandana
except ImportError:
raise NotImplementedError("You need the bandana package to wear hats")
else:
bandana.check(hat)
...

这会让您更清楚为什么不能使用 wear 函数。

关于Python:仅当包存在时才定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32414401/

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