使用setter修改dict中的值

时间:2017-10-23 21:59:15

标签: python dictionary

我有一个看起来如下的字典:

初始班级

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.22.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;未定义

0 个答案:

没有答案