对于具有不同冷却区域(最多10个)的冷床表示,我构建了以下结构:
class coolingbed:
def __init__(self, parent):
self._value = value
self._coolingzone = []
def __repr__(self):
return 'coolingbed({!r})'.format(self._value)
def add_coolingZone(self, zone):
self._coolingzone.append(zone)
def __iter__(self):
return iter(self._coolingzone)
手动我可以通过以下方式创建一个凉床:
cb = coolingbed(0)
并添加'冷却区',如:
cz1 = coolingbed(1)
cz2 = coolingbed(2)
将添加:
cb.add_coolingZone(cz1)
cb.add_coolingZone(cz2)
并通过以下方式验证:
for cz in cb:
print(cz)
一开始就没问题,但由于这个冷床代表可以选择指定多少冷却区,并为每个区分配4个值,我正在寻找更自动化的解决方案。
在pyqt5
gui中,最多有10组4个旋转盒来收集数据。每个旋转框都有它的变量名称来响应。
因此,我们的想法是以适当的方式为冷却区域生成这样的变量名称,具体取决于启用了多少区域。
有没有人有想法可以实现这一目标?像'cz'+ i
这样的东西欢呼声, 基督教
答案 0 :(得分:0)
你可以使用dictionarys。您使用字典键作为变量名称,将值用作coolingbed
对象。
cbeds = {}
for i in range(5):
key = 'cz' + str(i + 1)
cbeds[key] = coolingbed(i + 1)
可以使用相应的键索引字典来检索任何单个coolingbed
对象。您可以使用cbeds['cz4']
,就像它是变量名一样。