#!/usr/bin/python3.7
# -*- coding: utf-8 -*-
# @Time : 2019/8/16 17:45
# @Author: Jtyoui@qq.com
from types import FunctionType, ModuleType
[文档]def string_function(module: [str, ModuleType], func: str, *args, **kwargs):
"""根据字符串方法名来进行调用模块方法
:param module: 模块名
:param func: 模块中的方法名字
:param args: 方法里面的参数值
:param kwargs: 方法里面的参数值
:return: 返回一个返回值
"""
if isinstance(module, ModuleType):
if hasattr(module, func):
func_or_var = getattr(module, func)
if isinstance(func_or_var, FunctionType):
return func_or_var(*args, **kwargs)
else:
return func_or_var
else:
print(f'{func}不是一个方法')
elif isinstance(module, str):
m = __import__(module)
return string_function(m, func, *args, **kwargs)
else:
print(f'{module}不是一个模块')
return None
if __name__ == '__main__':
print(string_function('jtyoui', 'BaiDuInfoSearch')('万绮雯').info())
print(list(string_function('jtyoui', 'f_to_j', str_='載')))
print(list(string_function('jtyoui', 'f_to_j', '載')))