python - 不同项目中的python通用枚举
问题描述
我的设置有一个在 pc1 上运行的管理器进程和一个在 pc2 上运行的进程。他们通过 rpyc 进行通信。Pc2 连接了 3 个摄像头(它是一个机器人)。
我在两个进程中使用了相同的类定义来定义我的相机:
class CameraList(Enum):
EYE = 0
CART = 1
HEAD = 2
我在两台机器上都使用枚举值来创建一个包含更多相机定义的字典
config.cameras.update({config.CameraList.EYE: { <eye cam parameters> }})
config.cameras.update({config.CameraList.CART: { <cart cam parameters> }})
在管理器进程中,我想在我的 rpyc 调用的参数中请求将相机指定为 config.CameraList.EYE 的图像。
在尝试使用参数访问凸轮的执行过程(Pc2)中,我得到一个关键错误。
我只能使用“config.CameraList.EYE.value”或“config.CameraList.EYE.name”作为参数来完成这项工作,因为枚举是在不同的进程中创建的吗?
解决方案
这里最简单的解决方案是使用IntEnum
-- IntEnum
s 只是花哨int
的 s,并作为int
s 传输,所以在机器人方面你会得到比较:
cameraList.EYE == 0
这将评估为True
。
推荐阅读
- c# - 当我使用我的网站/ftp 服务器并尝试使用 webclient 下载图像或文本等文件时,c# 中的 webclient 出现错误?
- powerbi - Power BI - 如何创建按周和在线或商店渠道汇总数据的新列?
- java - Excel 2016. excel 公式中的撇号
- google-sheets - 如何在 Google 表格中提取有意义的有向无环图依赖项
- .net - 从 http 转到 https,得到“找不到与绑定 WebHttpBinding 的端点的方案 http 匹配的基地址”
- mysql - 如何在laravel中索引字符串列?
- c++ - 获取当前用户的 SID 作为 std::string。C++
- python - 在 Anaconda 上使用 TensorFlow GPU
- java - 考虑到 Java 版本的 RSA 和 WebSphere 兼容版本
- python - 如何将 Z 组件添加到我的图形引擎