前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >54 - 元类(metaclass)的作用

54 - 元类(metaclass)的作用

原创
作者头像
ruochen
修改2021-06-07 10:26:59
3640
修改2021-06-07 10:26:59
举报
文章被收录于专栏:若尘的技术专栏

什么是元类,请用代码解释如何使用元类

代码语言:txt
复制
'''
metaclass: 元类,类似于创建类的模板,所有的类都是通过他来创建的,可以自由控制类的创建过程

单例模式、ORM模式
'''

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 == None:
            self.__instance = super(SingLeton, self).__call__(*args, **kwargs)
            print(type(self.__instance))
        return self.__instance
    
class MyClass(metaclass=SingLeton):
    pass

my1 = MyClass()
my2 = MyClass()
print(my1 is my2)
代码语言:txt
复制
in __init__
代码语言:txt
复制
in __call__
代码语言:txt
复制
<class '__main__.MyClass'>
代码语言:txt
复制
in __call__
代码语言:txt
复制
True

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是元类,请用代码解释如何使用元类
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档