python3.6 类的meta定义
时间: 2023-07-10 08:05:58 浏览: 44
在 Python 3.6 中,可以使用 `metaclass` 参数来定义类的元类(meta class),也就是用来创建该类的类。元类可以控制类的创建过程,例如可以定制类的属性、方法、继承关系等。
下面是一个简单的示例:
```python
class MyMeta(type):
def __new__(cls, name, bases, attrs):
attrs['my_class_variable'] = 'Hello, world!'
return super().__new__(cls, name, bases, attrs)
class MyClass(metaclass=MyMeta):
pass
print(MyClass.my_class_variable) # 输出:Hello, world!
```
在上面的代码中,我们定义了一个元类 `MyMeta`,它重载了 `__new__` 方法,在创建类时会自动调用该方法。在 `__new__` 方法中,我们给类动态添加了一个类变量 `my_class_variable`,并返回一个新的类对象。然后我们定义了一个类 `MyClass`,并将 `metaclass` 参数设置为 `MyMeta`,这样在创建 `MyClass` 时会使用 `MyMeta` 来创建它。
当我们打印 `MyClass.my_class_variable` 时,会输出 `Hello, world!`,这是因为在 `MyMeta.__new__` 中动态添加了这个类变量。这个例子只是演示了元类的基本用法,实际应用中可以根据需求定制更复杂的行为。