首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python,使用单例模式或仅使用全局变量

Python,使用单例模式或仅使用全局变量
EN

Stack Overflow用户
提问于 2014-08-21 22:44:48
回答 1查看 4K关注 0票数 10

在python中,使用单例模式比使用全局变量更好吗?

代码语言:javascript
复制
class Singleton(type):
    def __call__(self, *args, **kwargs):
        if 'instance' not in self.__dict__:
            self.instance = super(Singleton, self).__call__(*args, **kwargs)
        return self.instance

或者只做一个全局变量:

代码语言:javascript
复制
SINGLETON_VARIABLE = None
def getSingleton():
    if SINGLETON is None:
        SINGLETON_VARIABLE = SOME_ININ_CLASS()
    return SINGLETON_VARIABLE

是否有必要使生活复杂化才能创建一个单例模式?提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2014-08-21 23:47:42

全局变量方法的问题在于,您总是可以访问该变量并修改其内容,因此它将是Singleton模式的一种“弱”形式。此外,如果您有多个Singleton类,则必须为每个类定义一个函数和一个全局变量,因此它最终会比模式更混乱。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25429349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档