反射

反射就是通过字符串,在模块中寻找指定函数,对其进行判断,获取,设置,删除

 1 class Test:
 2     def __init__(self):
 3         self.ne=6
 4     def test2(self):
 5         print('test')
 6     def test3(self):
 7         print(self.ne)
 8 obj=Test()
 9 t1=hasattr(obj,'test2')#判断是否有 'test2'
10 print(t1)
11 
12 t2=getattr(obj,'test2')# 获取'test2'的内存地址
13 t2()
14 print(t2)
15 
16 
17 obj.test3()
18 t3=setattr(obj,'ne',5)#改变'ne'的值
19 obj.test3()
20 
21 t4=delattr(obj,'ne')#删除'ne'
22 print(hasattr(obj,'ne'))#判断是否有'ne'

getattr #根据字符串的形式,去对象中找成员

hasattr #根据字符串的形式,判断对象中是否有成员

setattr #根据字符串的形式, 动态的设置一个成员 (内存)

delattr #根据字符串的形式,动态的删除一个成员 (内存)

原文地址:https://www.cnblogs.com/leo-tail-x/p/9561593.html