我正在使用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
Run Code Online (Sandbox Code Playgroud)
因此,第一个枚举对象(上面)的名称为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)
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何编写一个获得当前速度的函数,然后将其设置为更高一级.我试过了:
1 /将enum对象作为一个字符串处理,并用一个更高的数字(字符类型)替换最后一个字符.但这种方法对枚举对象不起作用.
2 /寻找某种增量或下一个函数,但这些对于枚举对象似乎不存在.
那么让我们使用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
Run Code Online (Sandbox Code Playgroud)
谢谢,我还没玩过Enum类型,所以这是一次很好的学习经历.