对象.属性
可以获得值
如果,我的属性名是一个字符串
无法通过
对象.字符串属性名
取值
解决办法:
通过反射来实现
反射的三个函数分别是
hasattr
getattr
setattr
getattr
属性值 = getattr(obj对象名,str属性名)
获取对象的属性值
str_name = getattr(t,"name") # t.name
setattr
setattr(obj对象名,str属性名,str属性值)
给一个对象添加属性和值
setattr(t,"age",18) # t.age = 18
hasattr
hasattr(obj对象名,str属性名)
判断一个对象是否拥有某某属性
hasattr(t,"name")
返回值是布尔类型,有属性就是True,无属性就是False
其它
反射不仅可操作对象的属性
也可操作对象的方法