Python3: 自动生成子对象的变量名
Python3: auto-generation of variable names for object children
对于具有不同冷却区(最多 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)
并添加 'cooling zones' 如:
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
干杯,
克里斯蒂安
你可以使用字典。您使用字典键作为变量名,值作为 coolingbed
对象。
cbeds = {}
for i in range(5):
key = 'cz' + str(i + 1)
cbeds[key] = coolingbed(i + 1)
任何单个 coolingbed
对象都可以通过使用相应的键索引字典来检索。您可以像使用变量名一样使用 cbeds['cz4']
。
对于具有不同冷却区(最多 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)
并添加 'cooling zones' 如:
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
干杯, 克里斯蒂安
你可以使用字典。您使用字典键作为变量名,值作为 coolingbed
对象。
cbeds = {}
for i in range(5):
key = 'cz' + str(i + 1)
cbeds[key] = coolingbed(i + 1)
任何单个 coolingbed
对象都可以通过使用相应的键索引字典来检索。您可以像使用变量名一样使用 cbeds['cz4']
。