Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Flask micro framework中创建单例对象_Python_Flask_Rabbitmq - Fatal编程技术网

Python 如何在Flask micro framework中创建单例对象

Python 如何在Flask micro framework中创建单例对象,python,flask,rabbitmq,Python,Flask,Rabbitmq,我正在为Producer创建一个类,它将消息推送到RabbitMQ。它使用了pika模块。 我想创建一个处理程序,以便控制与Rabbit MQ交互的连接数 是否有一种方法可以将此添加到app\u上下文中,然后再参考该上下文,或者是否有一种方法可以使用init\u app来定义此处理程序 任何代码片段都会有很大帮助。在Python中,在大多数情况下不需要使用单例模式,因为Python模块本质上是单例的。但你还是可以用的 class Singleton(object): _instance

我正在为
Producer
创建一个类,它将消息推送到
RabbitMQ
。它使用了
pika
模块
。 我想创建一个处理程序,以便控制与Rabbit MQ交互的连接数

是否有一种方法可以将此添加到
app\u上下文中,然后再参考该上下文,或者是否有一种方法可以使用
init\u app
来定义此处理程序


任何代码片段都会有很大帮助。

在Python中,在大多数情况下不需要使用单例模式,因为Python模块本质上是单例的。但你还是可以用的

class Singleton(object):
    _instance = None

    def __init__(self):
        raise Error('call instance()')

    @classmethod
    def instance(cls):
        if cls._instance is None:
            cls._instance = cls.__new__(cls)
            # more init operation here
        return cls._instance
要将Flask(或任何其他web框架)应用程序用作singleton,只需像这样尝试

class AppContext(object):
    _app = None

    def __init__(self):
        raise Error('call instance()')

    @classmethod
    def app(cls):
        if cls._app is None:
            cls._app = Flask(__name__)
            # more init opration here
        return cls._app

app = AppContext.app() # can be called as many times as you want

或者继承
Flask
类并使其自身成为一个单例。

在Python中,在大多数情况下不需要使用单例模式,因为Python模块本质上是单例的。但你还是可以用的

class Singleton(object):
    _instance = None

    def __init__(self):
        raise Error('call instance()')

    @classmethod
    def instance(cls):
        if cls._instance is None:
            cls._instance = cls.__new__(cls)
            # more init operation here
        return cls._instance
要将Flask(或任何其他web框架)应用程序用作singleton,只需像这样尝试

class AppContext(object):
    _app = None

    def __init__(self):
        raise Error('call instance()')

    @classmethod
    def app(cls):
        if cls._app is None:
            cls._app = Flask(__name__)
            # more init opration here
        return cls._app

app = AppContext.app() # can be called as many times as you want
或者继承Flask
类并使其自身成为单例