继承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'))