绝对。
只需将所需的功能添加到您的
Days班级即可:
class Days(Enum): Sunday = 'S' Monday = 'M' Tuesday = 'T' Wednesday = 'W' Thursday = 'Th' Friday = 'F' Saturday = 'Sa' def next(self): cls = self.__class__ members = list(cls) index = members.index(self) + 1 if index >= len(members): index = 0 return members[index]
并在使用中:
today = Days.Wednesdayprint(today.next())# Days.Thursday
尽管上面的内容可能更容易理解,但是可以
__init__通过向
next每个成员添加一个属性(并且
previous在我们使用时)来完成一次工作。
class Days(Enum): # Sunday = 'S' Monday = 'M' Tuesday = 'T' Wednesday = 'W' Thursday = 'Th' Friday = 'F' Saturday = 'Sa' # def __init__(self, value): if len(self.__class__): # make links all = list(self.__class__) first, previous = all[0], all[-1] previous.next = self self.previous = previous self.next = first
并在使用中:
>>> Days.Tuesday.next<Days.Wednesday: 'W'>>>> Days.Tuesday.previous<Days.Monday: 'M'>>>> Days.Saturday.next<Days.Sunday: 'S'>>>> Days.Saturday.previous<Days.Friday: 'F'>
注意: 使用这种属性方法意味着我们不再需要/
()之后的。
next``previous



