[英]Try-except for unknown function?
我正在尝试创建一个函数来测试函数是否存在,然后根据它是否存在返回一个布尔值。
这是我的代码; 但是,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
请注意,上面的内置函数或者你访问的函数(如module.function
等)不会返回True
。如果你需要测试那些,如果你信任来自你获得entity
的源,你可以回退使用eval
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.