使用元类实现单例模式

2022/3/27 6:23:08

本文主要是介绍使用元类实现单例模式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

class MyType(type):
    def __init__(cls, *args, **kwargs):
        cls.instance = None
        super(MyType, cls).__init__(*args, **kwargs)

    def __new__(mcs, *args, **kwargs):
        return super(MyType, mcs).__new__(mcs, *args, **kwargs)

    def __call__(cls, *args, **kwargs):
        if not cls.instance:
            cls.instance = cls.__new__(cls, *args, **kwargs)
            cls.__init__(cls.instance, *args, **kwargs)
        return cls.instance


class Foo(metaclass=MyType):
    pass


这篇关于使用元类实现单例模式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程