Ivy*_*Ivy 4 python function python-3.x try-except
我正在尝试创建一个函数来测试函数是否存在,然后根据它是否存在返回一个布尔值.
这是我的代码; 但是,Python IDLE 3.5告诉我,我的eval()语句有错误,但我没有看到错误:
def testFunction(entity):
try eval(entity)():
return True
except NameError:
return False
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
你的try陈述是错的.应该是 -
def testFunction(entity):
try: return callable(eval(entity))
except NameError:
return False
Run Code Online (Sandbox Code Playgroud)
您也不需要调用该函数(以检查它是否可用).以上使用内置函数callable,来检查是否entity是函数/类左右.
但是如果你正在检查简单的函数(而不是内置函数或模块函数module.function),我会说最好使用globals()字典并在其中搜索,而不是使用eval().示例 -
def testFunction(entity):
try: return callable(globals()[entity])
except KeyError:
return False
Run Code Online (Sandbox Code Playgroud)
请注意,以上内容不会返回True内置函数或您访问的函数 - module.function等等.如果您还需要测试这些函数,并且如果您信任来源entity,则可以回退使用eval.
| 归档时间: |
|
| 查看次数: |
333 次 |
| 最近记录: |