Python反射笔记

通过字符串的形式,导入模块。使用__import__

1 In [3]: SYS = __import__("sys")
2 
3 In [4]: SYS.path

如果导入模块在多级文件夹下

__import__("**.**.**", fromlist=True)

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

1 module_name = __import__("module")
2 fun = getattr(module_name, "fun_name")
3 fun()
setattr, getattr, hasattr, delattr

 使用getattr实现动态创建对象

现在s1.py文件中,有个Foo类

在s2.py文件中,根据类名,使用getatt获取类对象然后创建对象

1 m = __import__("s1", fromlist="True")
2 #获取类对象
3 class_name = getattr(m, "Foo")
4 #创建对象
5 obj = class_name()
原文地址:https://www.cnblogs.com/xhcdream/p/7009030.html