自省与反射.py 697 B

1234567891011121314151617181920212223242526272829303132333435
  1. # -*- coding: UTF-8 -*-
  2. ###============ 反射 ============###
  3. class Person():
  4. city = '南京'
  5. def __init__(self, name, age):
  6. self.name = name
  7. self.age = age
  8. def intor(self):
  9. return f"{self.name}"
  10. #
  11. xdc = Person('xiguatian', 18)
  12. # 判断 类对象 是否存在 city 属性 (hasattr)
  13. print( hasattr(Person , 'city') )
  14. r = hasattr(Person, 'intor')
  15. # 获取属性 (getattr)
  16. print(getattr(Person,'city'))
  17. r = getattr(xdc, 'intor') # 本质上是一个函数,
  18. print(r())
  19. # 设置属性 (setattr)
  20. # 对象, 对象属性名称 修改后的属性值
  21. setattr(xdc, 'name', 'magua')
  22. # 删除属性 (delattr)
  23. delattr(xdc, 'name')