我有一个看起来如下的字典:
初始班级
class Floors(object):
def __init__(self, colour, speed, name):
self.colour = colour
self.speed = speed
self.name = name
有问题的词典
# Dict of info
floorTypes = {
CONCRETE: Floors(CONCRETE, 5.5, 'Concrete'), # FFF
MARBLE: Floors(MARBLE, 3.5, 'Marble'), # FF3
...
GRANITE: Floors(GRANITE, 6.0, 'Granite'), # 777
STEEL: Floors(STEEL, 1/100000, 'Steel') # 000
}
获取方法:
def getFloorType(rgb):
return floorTypes.get(rgb)
我试图能够根据作为float传入的修饰符更改值。因此,如果我传入0.2的修饰符,我想使所有速度等于(speed+(speed*0.2))
。我认为最好的方法是使用set
方法,但是当我尝试运行foreach循环来设置它们时,它不起作用。这是我的循环,你能指出我做错了吗?
当前循环:
for floor in floorTypes:
curSpeed = getFloorType(rgb).speed
getFloorType(rgb).speed = curSpeed + (curSpeed * mult)
其中mult
是浮点乘数,例如0.2
或2.4
。
这里是返回的回溯:
ERROR:root:Traceback (most recent call last):
File "robot.py", line 360, in <module>
surfaceChanges(mult)
File "robot", line 330, in surfaceChanges
for i in floorTypes:
NameError:全局名称&#39; rgb&#39;未定义