protobuf, python Enum

本文深入探讨了Python中枚举类的使用方法,包括如何继承enum.Enum创建枚举类,以及如何通过名称或值访问枚举成员。同时,介绍了枚举类的items(), values(), keys()等方法的用法,并提供了从value反查name的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

转载于:https://www.cnblogs.com/liuweimingcprogram/p/10997909.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值