修改multiprocessing.Manager().dict()中对象的变量的值

复制代码
class SystemSta:
    def __init__(self):
        self.AllJointsFindedHome = False

创建字典

复制代码
manager = multiprocessing.Manager()
shared_data = manager.dict()
shared_data['SystemSta'] = SystemSta()

更改字典中对象的变量的值

错误示范

复制代码
shared_data['SystemSta'].AllJointsFindedHome = False

在Python的multiprocessing模块中,multiprocessing.Manager().dict()中的对象不支持直接修改其属性。你试图修改shared_data['SystemSta'].AllJointsFindedHome,但是这个改变并没有被应用到shared_data里。为了解决这个问题,你可以在修改SystemSta对象后,再将其赋值回shared_data,如下所示:

复制代码
    temp = shared_data['SystemSta']
    temp.AllJointsFindedHome = True
    shared_data['SystemSta'] = temp

这样,当你修改SystemSta对象的属性后,这个改变就会被正确的应用到shared_data里。

相关推荐
lntu_ling2 小时前
Python-基于Haversine公式计算两点距离
开发语言·python·gis算法
哈里谢顿8 小时前
Django 应用 OOM(Out of Memory)故障的定位思路和排查方法
python·django
甄心爱学习9 小时前
【python】获取所有长度为 k 的二进制字符串
python·算法
tuotali202610 小时前
氢气压缩机技术规范亲测案例分享
人工智能·python
嫂子的姐夫10 小时前
030-扣代码:湖北图书馆登录
爬虫·python·逆向
a11177610 小时前
EasyVtuber(或其衍生/增强版本)的虚拟主播(Vtuber)面部动画生成与直播解决方案
python·虚拟主播
lintax10 小时前
计算pi值-积分法
python·算法·计算π·积分法
小凯1234511 小时前
pytest框架-详解(学习pytest框架这一篇就够了)
python·学习·pytest
逻极11 小时前
pytest 入门指南:Python 测试框架从零到一(2025 实战版)
开发语言·python·pytest