Python 反射,通过字符串来导入模块

反射:

通过字符串额形式,导入模块

通过字符串的形式,去模块中寻找指定函数,并执行函数。

__import__(“字符串形式的模块名称”),就可以导入相应的模块

通过内置函数 getattr(模块名,‘函数的字符串名称’)来指定需要执行的函数

注意找到了函数,还需要在函数名后面加()来执行函数。

// getattr,setattr,hasattr,delattr

根据字符串的形式去对象(某个模块)中操作其成员。

inp = input("请输入要导入的模块名称:")

#inp 是要导入模块的字符串表现形式。

# dd 是为其导入模块的别称。

dd = __import__(inp)

# f1 是 导入模块中的某个函数名称
# ret 是f1()的返回值。

ret = dd.f1()
print (ret)
# !/usr/bin/env python
# -*- coding:utf8 -*-

inp = input("请输入要导入的模块:")
dd = __import__(inp)

# 通过内置函数getattr来指定模块中的函数
inp_func = input("请输入要执行的函数: ")

target_func = getattr(dd, inp_func)
print(target_func)  # target_func 即为 模块中的某一函数。这只是函数,需要在函数后面加()才表示执行函数

result = target_func()
print(result)
原文地址:https://www.cnblogs.com/xuwenwei/p/14409332.html