Python检查函数是否存在而不尝试

时间:2014-01-04 21:21:29

标签: python function python-2.7 try-catch

在python中如何在没有实际运行函数的情况下检查函数是否存在(即使用try)?我会测试它是否存在于模块中。

6 个答案:

答案 0 :(得分:27)

您可以使用dir检查名称是否在模块中:

>>> import os
>>> "walk" in dir(os)
True
>>>

在上面的示例代码中,我们测试了os.walk函数。

答案 1 :(得分:11)

您建议try except。你确实可以使用它:

try:
    variable
except NameError:
    print("Not in scope!")
else:
    print("In scope!")

检查variable是否在范围内(它不调用该函数)。

答案 2 :(得分:8)

Solution1:
import inspect
if (hasattr(m, 'f') and inspect.isfunction(m.f))

Solution2:
import inspect
if ('f' in dir(m) and inspect.isfunction(m.f))

其中:
m =模块名称
f =以m

定义的函数

答案 3 :(得分:0)

如果要检查软件包中是否存在函数:

import pkg

print("method" in dir(pkg))

如果要检查脚本/名称空间中是否存在函数:

def hello():
    print("hello")

print("hello" in dir())

答案 4 :(得分:0)

如果要在类中查找函数,则可以使用“ __dict__”选项。例如,检查“ some_class”中的函数“ some_function”是否起作用:

if "some_function" in list(some_class.__dict__.keys()):
    print('Function {} found'.format ("some_function"))

答案 5 :(得分:0)

如果您要在代码中查找函数,请使用 global()

if "function" in globals():
  ...