Python考试题--第58道题干--元类(metaclass)的意义是什么--2022年04月13日
原创1.元类的定义:
类似于为类创建模板,所有类都是通过他创建的,您可以自由控制创建类的过程。
您可以创建单件图案,ORM模式
2.通过元类实现单例模式:
class Singleton(type):
def __init__(self, *args, **kwargs):
print(in __init__)
self.__instance = None # 实现定义成员变量的单例模式。
super(Singleton, self).__init__(*args, **kwargs)
def __call__(self, *args, **kwargs):
print(in __call__)
if self.__instance is None: # 如果成员变量不为空,则会被截获,不会创建新实例,并且不会打印以下内容。
self.__instance = super(Singleton,self).__call__(*args, **kwargs)
print(type(self.__instance))
return self.__instance
class Myclass(metaclass=Singleton):
pass
mc1 = Myclass()
mc2 = Myclass()
print(mc1)
print(mc2)
print(mc1 == mc2)
执行结果如下:

mc1和mc2的ID都是一样的。
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
itfan123



