python中的反射功能是由以下四个内置函数提供:hasattr、getattr、setattr、delattr,改四个函数分别用于对对象内部执行:检查是否含有某成员、获取成员、设置成员、删除成员。

 1 反射:
 2     通过字符串的形式导入模块
 3     通过字符串的形式,去模块中寻找指定的函数,并执行
 4 
 5     __import__(字符串)  将字符串作为模块名导入  赋值的话就相当于 as
 6 
 7     反射:
 8         根据字符串的形式取某个模块中寻找东西
 9         根据字符串的形式取某个模块中判断东西是否存在
10         根据字符串的形式去某个模中设置东西
11         根据字符串的形式取某个模块中删除的东西
12 
13         根据字符串的形式去对象(某个模块)中操作其成员
14 
15 反射介绍笔记和__import__把字符串当作模块导入
 1 class Foo(object):
 2   
 3     def __init__(self):
 4         self.name = 'wupeiqi'
 5   
 6     def func(self):
 7         return 'func'
 8   
 9 obj = Foo()
10   
11 # #### 检查是否含有成员 ####
12 hasattr(obj, 'name')
13 hasattr(obj, 'func')
14   
15 # #### 获取成员 ####
16 getattr(obj, 'name')
17 getattr(obj, 'func')
18   
19 # #### 设置成员 ####
20 setattr(obj, 'age', 18)
21 setattr(obj, 'show', lambda num: num + 1)
22   
23 # #### 删除成员 ####
24 delattr(obj, 'name')
25 delattr(obj, 'func')

1 __import__("模块名的字符串")

from 包 import 模块名  as  别名    ===等价于===     别名 = __import__("模块名的字符串")

1 def f1():
2     return "f1"
3 
4 def f2():
5     return "f2"
6 
7 def f3():
8     return "f3"
commons模块内容

相关文章: