我正在使用Dyson粉丝,我正在尝试编写一个可以提高风扇速度的功能。枚举对象FanSpeed具有以下成员。当我在FanSpeed中执行[print(i)for i]时,我得到:
FanSpeed.FAN_SPEED_1
FanSpeed.FAN_SPEED_2
FanSpeed.FAN_SPEED_3
FanSpeed.FAN_SPEED_4
FanSpeed.FAN_SPEED_5
FanSpeed.FAN_SPEED_6
FanSpeed.FAN_SPEED_7
FanSpeed.FAN_SPEED_8
FanSpeed.FAN_SPEED_9
FanSpeed.FAN_SPEED_10
因此第一个枚举对象(上面)的名称为FAN_SPEED_1(FanSpeed.FAN_SPEED_1.name
),其值为“0001”(FanSpeed.FAN_SPEED_1.value
),依此类推。
设定速度的功能(本例中为5):
fan.set_configuration(fan_mode=FanMode.FAN, fan_speed=FanSpeed.FAN_SPEED_5)
我无法弄清楚如何编写一个获取当前速度的函数,然后将其设置为更高一级。我试过了:
1 /将enum对象作为一个字符串处理,并用一个更高的数字(字符类型)替换最后一个字符。但这种方法对枚举对象不起作用。
2 /寻找某种增量或下一个函数,但枚举对象似乎不存在。
答案 0 :(得分:5)
让我们使用Python文档中的示例:
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
current_color = Color.RED
new_color = Color(current_color.value + 1)
>>> new_color == Color.GREEN
True
谢谢,我还没玩过Enum类型,所以这是一次很好的学习经历。