首页 > 其他 > 详细

反射:通过字符串操作属性

时间:2019-05-31 23:30:18      阅读:100      评论:0      收藏:0      [点我收藏+]
##反射:
# 通过字符串来操作对象的属性或方法
##举例
class User:
school = ‘oldgirl‘
def __init__(self,name,age):
self.name = name
self.age = age
def func(self):
print(‘func‘)

# 1.hasattr判断对象是否有某个属性或方法

print(User.school)
print(‘school‘ in User.__dict__)
print(‘xxx‘ in User.__dict__)
print(hasattr(User,‘school‘))
print(hasattr(User,‘xxx‘))
print(hasattr(User,‘func‘))
print(‘func‘ in User.__dict__)

print(‘==========================================‘)
##2,如果对象有某个属性,获取某个属性的值
# getattr

d = {‘name‘:"jason"}
print(d.get(‘password‘,‘hahahahahaha‘))
#
# getattr
print(getattr(User,‘school‘))
print(getattr(User,‘func‘))
print(User.__dict__[‘school‘])
print(User.__dict__[‘func‘])

# print(getattr(User,‘xxx‘)) 需要注意的是:如果没有这个属性,用get 就会报错,所以要先判断一下
if hasattr(User,‘xxx‘):
getattr(User,‘xxx‘)

print(‘==========================================‘)
##现在要修改设置一个对象中的属性
# setattr
obj = User(‘jason‘,18)
setattr(obj,‘gender‘,‘male‘) # obj.gender = ‘male‘
print(obj.__dict__)


print(‘==========================================‘)
##现在要删除一个对象中的属性
# delattr
delattr(User,‘school‘)
print(User.__dict__)








反射:通过字符串操作属性

原文:https://www.cnblogs.com/1832921tongjieducn/p/10957993.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!