从类方法访问Python枚举值

时间:2018-12-18 05:30:12

标签: python-3.x class enums

我的枚举如下:

class RequestMethodVerbMapping(Enum):
    POST = 'Create'
    PUT = 'Update'
    DELETE = 'Delete'

现在,为了访问与某个HTTP动词关联的字符串,我执行以下操作:

In [19]: RequestMethodVerbMapping.POST.value                                                                                                                                                                                                                             
Out[19]: 'Create'

可以正常工作。但是,现在HTTP动词是一个类属性,我想用一个类方法访问枚举。我做了以下事情:

import RequestMethodVerbMapping

class BaseWorkFlow:
    def __init__(self, request_method):
        self.request_method = request_method

def print_enum(self):
    print (RequestMethodVerbMapping.self.request_method.value)

但是,这不起作用,并给我一个错误:

  

AttributeError:自我

我在做什么错了?

1 个答案:

答案 0 :(得分:1)

getattr()可以通过属性名称获取Enum值:

def print_enum(self):
    print(getattr(RequestMethodVerbMapping, self.request_method).value)