【发布时间】:2017-07-25 06:05:13
【问题描述】:
我正在使用 Dyson 风扇并正在尝试编写一个增加风扇速度的函数。枚举对象 FanSpeed 具有以下成员。当我执行 [print(i) for i in FanSpeed] 时,我得到:
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/ 将枚举对象视为字符串,并将最后一个字符替换为更高的数字(字符类型)。但这种方法不适用于枚举对象。
2/ 寻找某种增量或下一个函数,但枚举对象似乎不存在这些函数。
【问题讨论】:
-
如何从风扇配置访问当前速度?您可以在列表中搜索此结果的索引,然后增加/减少 1 或更多
-
另一个副本,但使用不同的技术:
Get next enumerator constant/property -
就个人而言,我发现这个问题和答案比被引用为重复的问题更简洁,更容易理解。