protobuf, python Enum

继承enum.Enum的python class,其实是一个, name-value的关系,可以直接className(value)得到一个类。比如

import enum


class xx(enum.Enum):
    NAME = 'value'

print(xx('value'))
print(xx.NAME.name)
print(xx.NAME.value)

如果只知道属性名字,可以用print(getattr(xx, arg))

 

proto定义的是一个key-value

从python来说,一个enum的话,他可以:

xxx.items()    xxx.values()    xxx.keys()

奇葩的是,如果你得到了value的话,想要知道它名字,那么就是xxx.Name(value),有点反过来的意思。就是getNameByValue

from build.gen.py.enum_pb2 import stupidone_test


print(stupidone_test.Type.items())
print(stupidone_test.Type.keys())
print(stupidone_test.Type.values())


print(stupidone_test.Type.Name(-1))
print(stupidone_test.Type.Value('ONE'))

 

posted on 2019-06-10 15:23  stupid_one  阅读(765)  评论(0编辑  收藏  举报

导航