gpt4 book ai didi

python - Try-except 未知功能?

转载 作者:太空狗 更新时间:2023-10-30 02:43:32 25 4
gpt4 key购买 nike

我正在尝试创建一个函数来测试一个函数是否存在,然后根据它是否存在返回一个 bool 值。

这是我的代码;然而,Python IDLE 3.5 告诉我我的 eval() 语句有错误,但我看不出有什么问题:

def testFunction(entity):
try eval(entity)():
return True
except NameError:
return False

有人可以帮忙吗?

最佳答案

您的try 语句是错误的。应该是——

def testFunction(entity):
try: return callable(eval(entity))
except NameError:
return False

您也不需要调用该函数(以检查其是否可用)。上面使用内置函数 callable , 检查 entity 是否是函数/类。


但如果您正在检查简单函数(而不是内置函数或模块函数,如 module.function),我会说使用 globals() 会更好字典并在其中搜索,而不是使用 eval() 。示例 -

def testFunction(entity):
try: return callable(globals()[entity])
except KeyError:
return False

请注意,以上不会为内置函数或您访问的函数返回 True - module.function 等。如果您需要测试这些也是如此,如果您信任从中获取 entity 的来源,您可以回退到使用 eval

关于python - Try-except 未知功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33055489/

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