2026-10-22 20:15:53
在Python中,动态创建类主要通过type函数或自定义元类实现。以下是具体方法和示例:
1. 使用 type 动态创建类type 是Python内置的元类,可通过以下方式动态创建类:
类名:字符串,表示类的名称。
父类元组:指定继承的父类(可为空)。
属性字典:包含类的方法和属性(键为名称,值为函数或值)。
元类是类的模板,通过继承 type 并重写 __new__ 或 __init__ 方法,可以更灵活地控制类的创建过程。
示例:自定义元类class Meta(type): def __new__(cls, name, bases, attrs): attrs['version'] = 1.0 # 动态添加类属性 return super().__new__(cls, name, bases, attrs)class MyClass(metaclass=Meta): passprint(MyClass.version) # 输出: 1.0动态修改类行为class DynamicMeta(type): def __init__(cls, name, bases, attrs): # 为所有方法添加日志 for key, value in attrs.items(): if callable(value): setattr(cls, key, lambda self, func=value: print(f"Calling {func.__name__}") or func(self)) super().__init__(name, bases, attrs)class LoggerClass(metaclass=DynamicMeta): def method(self): print("Actual method logic")obj = LoggerClass()obj.method() # 输出:# Calling method# Actual method logic3. 动态类的应用场景通过掌握动态类创建,可以在面试中展示对Python高级特性的理解,但需结合实际需求谨慎使用。