python如何输出字符串类型_【已解决】Python中如何让Enum的字符串输出字段的值而不带类型的前缀...

折腾:

期间,对于一个Python中的枚举变量:class ItemType(enum.Enum):

Unknown = "Unknown" # not set yet

Small = "Small" # like file

Medium = "Medium" # use bag

Large = "Large" # use box

VeryLarge = "VeryLarge" # use car

希望对应的变量:class EnumItem(fields.Raw):

def format(self, value):

gLog.debug("value=%s", value)

return "%s" % (value)

‘itemType’ : EnumItem(attribute="itemType"),

输出的是:

value=Small

结果是:

value=ItemType.Small

python enum to string

加上str(unicode)的强制转换?

结果:class EnumItem(fields.Raw):

def format(self, value):

gLog.debug("value=%s", value)

gLog.debug("str(value)=%s", str(value))

gLog.debug("unicode(value)=%s", unicode(value))

valueStr = "%s" % (value)

gLog.debug("valueStr=%s", valueStr)

return valueStr

输出:

DEBUG in Task [/root/RunningFast/staging/runningfast/resources/Task.py:40]:

value=ItemType.Small

DEBUG in Task [/root/RunningFast/staging/runningfast/resources/Task.py:41]:

str(value)=ItemType.Small

DEBUG in Task [/root/RunningFast/staging/runningfast/resources/Task.py:42]:

unicode(value)=ItemType.Small

DEBUG in Task [/root/RunningFast/staging/runningfast/resources/Task.py:44]:

valueStr=ItemType.Small

python string enum output field value

python string enum format

python enum string  format>>> print(Color.red.name)

red

>>> member = Color.red

>>> member.name

‘red’

>>> member.value

1

看来是可以:

通过枚举值的name和value,分别获得枚举值名字和对应的值

然后代码:class ItemType(enum.Enum):

Unknown = "Unknown" # not set yet

Small = "Small" # like file

Medium = "Medium" # use bag

Large = "Large" # use box

VeryLarge = "VeryLarge" # use car

class EnumItem(fields.Raw):

def format(self, someEnum):

gLog.debug("someEnum=%s", someEnum)

gLog.debug("str(someEnum)=%s", str(someEnum))

gLog.debug("unicode(someEnum)=%s", unicode(someEnum))

someEnumStr = "%s" % (someEnum)

gLog.debug("someEnumStr=%s", someEnumStr)

someEnumName = someEnum.name

someEnumValue = someEnum.value

gLog.debug("someEnumName=%s, someEnumValue=%s", someEnumName, someEnumValue)

return someEnumValue

就可以输出需要的结果了:

DEBUG in Task [/root/RunningFast/staging/runningfast/resources/Task.py:40]:

someEnum=ItemType.Small

DEBUG in Task [/root/RunningFast/staging/runningfast/resources/Task.py:41]:

str(someEnum)=ItemType.Small

DEBUG in Task [/root/RunningFast/staging/runningfast/resources/Task.py:42]:

unicode(someEnum)=ItemType.Small

DEBUG in Task [/root/RunningFast/staging/runningfast/resources/Task.py:44]:

someEnumStr=ItemType.Small

DEBUG in Task [/root/RunningFast/staging/runningfast/resources/Task.py:48]:

someEnumName=Small, someEnumValue=Small

【总结】

此处,Python中的enum(注意,此处虽然是Python 2.7,但是安装了python34中enum34:

pip install enum34,所以使用起来,就是Python 3.4中的enum)

想要输出对应的字符串类型的enum中的对应的某个enum变量的值,即值的字符串,可以使用:someEnumValue = someEnum.value

即可。

另外,想要输出枚举值中某个类型的名字,可以用:someEnumName = someEnum.name

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值