##反射:
# 通过字符串来操作对象的属性或方法
##举例
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__)








相关文章:

  • 2021-05-29
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-20
  • 2022-12-23
  • 2021-08-06
猜你喜欢
  • 2022-12-23
  • 2021-11-23
  • 2021-12-03
  • 2021-04-05
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案