from enum import Enum
class Direction(Enum):
NORTH = 0
EAST = 1
SOUTH = 2
WEST = 3
def turn_right(self):
self = Direction((self.value + 1) % 4)
d = Direction.EAST
print(d)
d.turn_right()
print(d)
d.turn_right()
print(d)
预期输出应该是
Direction.EAST
Direction.SOUTH
Direction.WEST
每转一圈,但我得到的只是
Direction.EAST
Direction.EAST
Direction.EAST
看起来它没有更新self
,但是为什么?如何更改类以使其用法保持不变?你知道吗
一种可能的解决方法是
def turn_right(self):
return Direction((self.value + 1) % 4)
但是每次都会返回一个新的Direction
,有没有办法让方法“原地”工作?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐