1.getattr/hasattr/setattr/delattr操作对象中的成员
1 class Foo:
2 def __init__(self,name,age):
3 self.name = name
4 self.age = age
5 def show(self):
6 return '%s-%s' %(self.name,self.age)
7 obj = Foo('alex',18)
(1)getattr
1 s = getattr(obj,'name') #用getattr以字符串方式从obj对象里获取字段成员
2 print(s)
3
4 func = getattr(obj,'show') #用getattr以字符串方式从obj对象里获取方法成员
5 print(func)
6 r = func() #执行获取到的方法
7 print(r)
(2)hasattr
t = hasattr(obj,'name') #hasattr判断对象里是否有指定成员
print(t)
(3)setattr
setattr(obj,'gender','men') #setattr设置对象成员
print(obj.gender)
(4)delattr
delattr(obj,'name') #delattr删除对象成员
2.从类里拿成员--类也是对象
1 class Foo:
2 stat = '887'
3 def __init__(self,name,age):
4 self.name = name
5 self.age = age
6 g = getattr(Foo,'stat')
7 print(g)
3.从模块里拿东西--模块也是一个对象
1 import test
2 t = getattr(test,'name') #从模块里拿到一个变量
3 print(t)
4 cls = getattr(test,'Foo') #从模块里拿到一个类
5 print(cls)
6 obj = cls()
7 print(obj.name)