导入一个模块,然后通过模块的命名空间查找任何函数(您可以假设任何具有call () 方法的对象都是一个函数)并打印函数的名称及其参数,就像它可能出现在def 语句。
我的问题是在我遍历模块并获得所有函数后,我无法将函数名称传递给 inspect.getfullargspec() 因为它是一个字符串。如何使字符串可调用?
import inspect
from smtplib import SMTP
from pprint import pprint
def func(x):
for item in inspect.getmembers(x):
lst = inspect.getmembers(x, inspect.isfunction)
for items in lst:
func_names = items[0] #names of functions
f = r"%s.%s" % (x.__name__, func_names)
arg = inspect.getargspec(f)
print(f)
if __name__ == '__main__':
func(SMTP)