【Python】Python反射机制的功能和使用方法?

Python反射机制主要通过以下几种方式实现:

  1. type() – 返回对象类型
    可以使用type()函数获取一个对象的类型,它返回一个Type对象:
## python www.itzhimei.com 代码
print(type(5)) # <class 'int'>
print(type([1, 2])) # <class 'list'>
  1. isinstance() – 判断对象类型
    isinstance()可以判断一个对象是否是指定的类型:
## python www.itzhimei.com 代码
print(isinstance(5, int)) # True
print(isinstance([1, 2], list)) # True
  1. hasattr() – 判断对象属性
    可以使用hasattr()判断一个对象是否包含指定的属性或方法:
## python www.itzhimei.com 代码
class Person:
    name = 'Bob'

p = Person() 
print(hasattr(p, 'name')) # True 
print(hasattr(p, 'age')) # False
  1. getattr()/setattr()/delattr() – 获取/设置/删除对象属性
    可以直接读取/修改对象的属性:
## python www.itzhimei.com 代码
print(getattr(p, 'name')) # 'Bob' 
setattr(p, 'name', 'Alice')
delattr(p, 'name')
  1. vars() – 获取对象属性字典
    vars()会返回对象属性的字典:
## python www.itzhimei.com 代码
print(vars(p)) 
# {'name': 'Bob'}

反射是元编程的重要方式之一,可以通过字符串操作对象,使代码更加灵活。