我有一堂课
class MusicCache(BaseDatabaseClass):
dont_skip_duplicates = False
使用实例方法
def is_skip_set(self):
if MusicCache.dont_skip_duplicates is False:
# skip duplicates
else:
# don't skip duplicates
该类有5个实例在运行。
然后我从导入了MusicCache
的另一个类中设置类变量:
class MQTTHandler(object):
def set_skip_duplicates(self):
MusicCache.dont_skip_duplicates = True
is_skip_set()
始终等于false,即使调用set_skip_duplicates()
也是如此。
我尝试将dont_skip_duplicates
设置为实例变量,并将MusicCache的所有实例传递给MQTTHandler,并使用self.cache_instance_x.dont_skip_duplicates = True
设置每个实例的实例变量,但这都不起作用,因为我将实例传递给MQTTHandler
,并使用self
分配创建本地实例。
我在MusicCache类中使用过Java风格的二传手,并且将dont_skip_duplicates
变量设为@property
以实现相同的目的,但是似乎没有任何作用。
在MusicCache
类的所有实例中设置此变量的最佳方法是什么?
答案 0 :(得分:0)
闲逛了一会之后,我们意识到主循环正在运行一个多处理队列,我认为这是在防止跨类/实例的变量更新。
在主State类中添加了一个类型为multiprocessing.Event的变量,无法正确设置和获取该变量的状态。