python 自定义元类
Python 2024/7/5 21:41:38 点击:不统计
原载于:转www.载for网站制作学习asp必.cn究
定义元类 继承type 类。 重写两个方法,并且参数固定。
def __new__(cls, name, bases, dct):
def __init__(cls, name, bases, dct):
class MyMeta(type):
registry = {} # 记录所有的 对象
def __new__(cls, name, bases, dct): # 重写 新建里方法
print(f"Creating class {name}")
new_class = super().__new__(cls, name, bases, dct)
cls.registry[name] = new_class
return super().__new__(cls, name, bases, dct)
def __init__(cls, name, bases, dct): # 重新init
print(f"Initializing class {name}")
super().__init__(name, bases, dct)
@classmethod
def all_obj(cls):
return cls.registry
class MyClass(metaclass=MyMeta):
pass
a = MyClass()
print(a)
print(MyMeta.all_obj())
# 输出结果:
# Creating class MyClass
# Initializing class MyClass
# <__main__.MyClass object at 0x10d103730 >
# {'MyClass': <class '__main__.MyClass'>}
原载于:本文原载于www.forasp.cn
·上一篇:python 代码分析优化工具有哪些 >> ·下一篇:python 中的队列 >>