python反射创建对象
时间: 2023-11-06 18:57:28 浏览: 40
Python反射是一种机制,它允许程序在运行时动态地访问、检查、修改对象的属性和方法,包括创建对象。使用反射创建对象的步骤如下:
1. 使用内置函数`getattr()`获取类对象,可以根据类名字符串获取类对象。
2. 使用内置函数`hasattr()`检查类对象中是否有需要调用的方法或属性。
3. 使用内置函数`setattr()`设置对象的属性值。
4. 使用内置函数`type()`创建新的类对象。
5. 使用类对象的构造函数`__init__()`创建新的对象。
下面是一个示例代码,展示如何使用反射创建一个类的对象:
```
class MyClass:
def __init__(self, x, y):
self.x = x
self.y = y
obj_type = type('MyClass', (object,), {'__init__': MyClass.__init__})
obj = obj_type(10, 20)
print(obj.x, obj.y)
```
这个代码片段中,我们首先定义了一个类`MyClass`,它有两个属性`x`和`y`,并且有一个构造函数`__init__()`。接着,我们使用`type()`函数根据类名字符串`MyClass`创建了一个新的类对象`obj_type`,该类继承自`object`类,重写了`__init__()`方法。最后,我们使用`obj_type`的构造函数创建了一个新的对象,并设置了它的属性值。最终,我们打印了对象的属性值,输出结果为`10 20`。