Par*_*ker 9 python enums enumeration python-3.x
让我们说我有一个普查员,是否有可能得到随后的财产?所以,如果我有today=Days.Sunday,我能做什么tomorrow=today.next()?
例:
class Days(Enum):
Sunday = 'S'
Monday = 'M'
...
Saturday = 'Sa'
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用元组(如下所示)做类似的事情tomorrow=today[1],但我希望有一些内置或更优雅的东西.
class Days(Enum):
Sunday = ('S','Monday')
Monday = ('M','Tuesday')
...
Saturday = ('Sa','Sunday')
Run Code Online (Sandbox Code Playgroud)
绝对.
只需在您的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]
Run Code Online (Sandbox Code Playgroud)
并使用:
today = Days.Wednesday
print(today.next())
# Days.Thursday
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
289 次 |
| 最近记录: |