# Python Metaclass Example
# 定义一个元类
class MyMeta(type):
def __new__(cls, name, bases, dct):
print(f"Creating class: {name}")
# 自定义类的创建过程,可以在这里修改类的属性或方法
dct['my_custom_method'] = lambda self: f"Hello from {name}"
return super().__new__(cls, name, bases, dct)
# 使用元类创建一个普通类
class MyClass(metaclass=MyMeta):
pass
# 实例化并调用自动生成的方法
obj = MyClass()
print(obj.my_custom_method()) # 输出: Hello from MyClass
MyMeta:继承自 type 类,重写了 __new__ 方法。__new__ 方法在类创建时被调用,可以在此处自定义类的创建过程。__new__ 方法:在这个方法中,我们打印出正在创建的类名,并为该类动态添加了一个名为 my_custom_method 的方法。MyClass 类:使用 metaclass=MyMeta 指定其元类为 MyMeta,这样在创建 MyClass 时会调用 MyMeta 的 __new__ 方法。MyClass 的实例 obj,并通过 obj.my_custom_method() 调用自动生成的方法,输出结果。如果你需要更多关于元类的详细信息,可以参考 Python 官方文档或其他相关资源。
上一篇:python 引用
下一篇:python indent
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站