python反射机制
时间: 2023-07-25 14:06:50 浏览: 45
Python反射机制是指在运行时动态地获取对象的信息以及调用对象的方法的能力。简单来说,反射就是通过字符串来操作对象的属性和方法。
在Python中,可以使用内置函数`getattr()`、`setattr()`和`hasattr()`来实现反射。
- `getattr(object, name[, default])`:获取对象的属性或方法。`object`是对象名,`name`是属性或方法名,`default`是默认返回值,如果该属性或方法不存在,则返回默认值。
- `setattr(object, name, value)`:设置对象的属性或方法。`object`是对象名,`name`是属性或方法名,`value`是属性或方法值。
- `hasattr(object, name)`:判断对象是否包含属性或方法。`object`是对象名,`name`是属性或方法名。
下面是一个简单的例子:
```python
class Person:
name = "Tom"
age = 18
def say_hello(self):
print("Hello, I am", self.name)
person = Person()
# 使用getattr()获取对象的属性和方法
print(getattr(person, "name")) # Tom
print(getattr(person, "age")) # 18
getattr(person, "say_hello")() # Hello, I am Tom
# 使用setattr()设置对象的属性和方法
setattr(person, "name", "Jerry")
setattr(person, "gender", "male")
print(person.name) # Jerry
print(person.gender) # male
# 使用hasattr()判断对象是否包含属性或方法
print(hasattr(person, "name")) # True
print(hasattr(person, "gender")) # True
print(hasattr(person, "height")) # False
```