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()

 

posted @ 2017-06-14 15:16  许小伍  阅读(152)  评论(0编辑  收藏  举报