Python代码:只初始化一个类的一个实例

2024-06-16 08:34:38 发布

您现在位置:Python中文网/ 问答频道 /正文

对于一次只运行一个类的一个实例,现在正在努力寻找正确的方法来构造代码,新手程序员很抱歉。在

我已经研究过了,但是很难找到正确的方法,但是对于正确的python方法,有很多争论是模块或singleton,例如Ensure that only one instance of a class gets run

我有一些代码(Python2.7.2)可以连续记录3个变量(2个温度和一个压力传感器),然后根据一些逻辑查看变量的趋势,移动一个阀门(如果声明是真的,在模块中调用def,因为我实际上希望所有def查看相同的数据集并移动相同的阀门)。目前,这一切在模块文件中都可以正常工作。在

然而,为了让实验室里的其他人运行我的代码,它需要从一个通用的GUI启动,因此我的代码需要线程化,这样进程就不会把GUI和命令行捆绑在一起。在

我开始将代码重新编写到一个类中(使用线程超类),并希望添加一些逻辑,以便仅调用该类的一个实例,>;1thread不会试图控制同一个阀。在

现在,我发现在python中这并不是那么容易的,并且读到“单例”的概念是不好的,并且正在努力寻找一个关于如何构造我的代码的解决方案。在

如果有人能为我指出正确的方向,我将不胜感激,因为我想这一定是答案。在


Tags: 模块实例方法代码onlythatdefgui
1条回答
网友
1楼 · 发布于 2024-06-16 08:34:38

您应该初始化一个实例并只访问初始化的常量 为了安全起见,在有人试图创建另一个实例时引发异常

class Singletone(object):
    __initialized = False
    def __init__(self):
        if Singletone.__initialized:
            raise Exception("You can't create more than 1 instance of Singletone")
        Singletone.__initialized = True

MY_SINGLETONE_INSTANCE = Singletone()

相关问题 更多 >