在python中什么叫反射,请举例说明反射的4个方法用法
时间: 2023-05-21 12:06:04 浏览: 51
反射是Python语言中一个重要的特性,它允许在运行时获取对象的信息,并且可以通过对象的属性和方法来操作对象。在Python中,反射的4个方法包括getattr、setattr、hasattr和delattr。
1. getattr(object, name[, default]):以字符串形式获取对象的属性值,如果属性不存在则会引发AttributeError异常。
例如,在一个类中定义了一个属性x,可以使用getattr函数获取:
class MyClass:
x = 1
obj = MyClass()
print(getattr(obj, 'x')) # 输出1
2. setattr(object, name, value):以字符串形式设置对象的属性值,如果对象不存在属性,则会创建此属性,并将其设置为给定值。
例如,在一个类中定义了一个属性y,可以使用setattr函数设置:
class MyClass:
pass
obj = MyClass()
setattr(obj, 'y', 2)
print(obj.y) # 输出2
3. hasattr(object, name):判断对象是否存在某个属性。
例如,在一个类中定义了一个属性z,可以使用hasattr函数判断是否存在:
class MyClass:
z = 3
obj = MyClass()
print(hasattr(obj, 'z')) # 输出True
4. delattr(object, name):删除对象的属性。
例如,在一个类中定义了一个属性w,可以使用delattr函数删除:
class MyClass:
w = 4
obj = MyClass()
delattr(obj, 'w')
print(hasattr(obj, 'w')) # 输出False