【问题标题】:How to convert Enum names to strings? [duplicate]如何将枚举名称转换为字符串? [复制]
【发布时间】:2019-07-26 21:59:54
【问题描述】:

不重复:enum - getting value of enum on string conversion

这里的问题是关于如何将 Enum 名称(左侧)转换为字符串,而不是值(右侧)。

以下Enum

class test(Enum):
    aa = 1
    bb = 2

我可以这样做:

v = test.aa
print(v)

我得到:

test.aa

但是如何将v 转换为字符串?

【问题讨论】:

    标签: python


    【解决方案1】:

    只需访问对象上的name 属性:

    from enum import Enum
    
    class test(Enum):
        aa = 1
        bb = 2
    
    v = test.aa
    print(v.name)
    

    输出:

    aa
    

    【讨论】:

    • str() 方式也可以;来自 c# 背景,我很难记住 python 中的所有内容都是缩写的!我认为字符串,而不是 str,长度,而不是 len 等 :)
    • 但这正是我需要的:带有 test.aa 的字符串,而不是 '1'
    • @Thomas Ahh,好的,然后打电话给var = str(v) 就好了。
    【解决方案2】:

    你可以转换值或枚举本身

    str(test.aa.value) == 1

    str(test.aa) == 'test.aa'

    print(test.aa) 也会将其转换为字符串

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-03
      • 1970-01-01
      • 2012-04-12
      • 2017-05-01
      • 2013-08-07
      • 2016-07-30
      • 2012-12-07
      相关资源
      最近更新 更多