3

I am trying to get enum values from Enum class by getting enum member name runtime . I am trying in the following way:

from enum import Enum


    class EnumList(Enum):

        foo = 1
        bar = 2
enumMemberName=input("Enter enum member name")
enumValue=repr(EnumList.enumMemberName)          // **AttributeError: enumMemberName**
enumValue=repr(EnumList.foo)                     // **working fine**

please provide me with the alternate solution of above problem.

0

2 Answers 2

3

I think this is what you want:

edit: revised answer after OP feedback.

from enum import Enum


class EnumList(Enum):

    foo = 1
    bar = 2


enumMemberName=input("Enter enum member name")

enumMember = EnumList.foo
enumMemberTwo = EnumList[enumMemberName]

enumValue = EnumList[enumMemberName].value
enumValueStr = repr(EnumList[enumMemberName].value)

Quoting from the documentation for Enum

From Enum documentation

Sign up to request clarification or add additional context in comments.

2 Comments

the above solution gives output in the following format:<EnumList.foo: 1> but the expected output is : 1
@triptisinha answer was revised.
2

Your expectations are wrong. Asking an Enum for one of its members is going to give you that member:

>>> enumList[enumMemberName]   # if name is 'foo'  (also, notice square brackets)
<EnumList.foo: 1>              # expected output

If you specifically want the value, you have to ask for it:

>>> enumList[enumMemberName].value   # if name is 'foo'
1

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.