Sunday, January 25, 2015

Python Enum

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'

No comments: