def enum(*sequential, **named):
enums = dict(zip(sequential, range(len( sequential))), **named)
reverse = dict((value, key) for key, value in enums.iteritems())
keys = dict((key, value) for key, value in enums.iteritems())
enums[ 'values' ] = reverse
enums[ 'keys' ] = keys
return type('Enum', (), enums)
ut = enum( M=1, S=2, T=4, V=8 )
ut.keys[ 'M' ] => 1
ut.values[ 4 ] => 'T'
enums = dict(zip(sequential, range(len( sequential))), **named)
reverse = dict((value, key) for key, value in enums.iteritems())
keys = dict((key, value) for key, value in enums.iteritems())
enums[ 'values' ] = reverse
enums[ 'keys' ] = keys
return type('Enum', (), enums)
ut = enum( M=1, S=2, T=4, V=8 )
ut.keys[ 'M' ] => 1
ut.values[ 4 ] => 'T'
No comments:
Post a Comment