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) 编辑 收藏 举报