使用s修改dict中的值

2024-09-30 05:24:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个口述如下:

初始类

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)

我正在尝试基于作为浮点传递的修饰符来更改值。如果我传入一个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:

名称错误:未定义全局名称“rgb”


Tags: 方法nameinselfdefrgbspeedcolour

热门问题