Python,检查模块是否具有某个功能

Ror*_*ach 2 python import python-2.7

我需要知道是否存在python模块函数,而不导入它.

导入可能不存在的东西(不是我想要的东西):这是我到目前为止所做的,但它只适用于整个模块而不是模块功能.

import imp
try:
    imp.find_module('mymodule')
    found = True
except ImportError:
    found = False
Run Code Online (Sandbox Code Playgroud)

上面的代码用于查找模块是否存在,下面的代码是我想要的功能,但此代码不起作用.

import imp
try:
    imp.find_module('mymodule.myfunction')
    found = True
except ImportError:
    found = False
Run Code Online (Sandbox Code Playgroud)

它给出了这个错误:

No module named mymodule.myfunction
Run Code Online (Sandbox Code Playgroud)

我知道mymodule.myfunction确实作为一个函数存在,因为我可以使用它,如果我使用它导入它:

import mymodule.myfunction
Run Code Online (Sandbox Code Playgroud)

但是,我知道它不是一个模块,所以这个错误确实有意义,我只是不知道如何解决它.

Ewa*_*wan 5

关于什么:

try:
    from mymodule import myfunction
except ImportError:
    def myfunction():
        print("broken")
Run Code Online (Sandbox Code Playgroud)


小智 5

使用hasattrfunction,它返回函数是否​​存在:

示例1)

hasattr(math,'tan')     --> true
Run Code Online (Sandbox Code Playgroud)

示例2)

hasattr(math,'hhhhhh')  --> false
Run Code Online (Sandbox Code Playgroud)