验证Python中的枚举成员

Ric*_*Foo 8 python enums

在Python中,我有一个输入(下面称为input_var),我想根据枚举验证(下面称为Color).以下方式是推荐的Pythonic方法吗?

from enum import Enum
class Color(Enum):
    red = 1
    blue = 2
input_var = 'red'
if input_var in Color.__members__:
    print('Everything is fine and dandy.')
Run Code Online (Sandbox Code Playgroud)

gtl*_*ert 8

使用内置hasattr()功能.hasattr(object, name)返回True如果string name是的属性object,否则返回False.

演示

from enum import Enum

class Color(Enum):
    red = 1
    blue = 2

input_var = 'red'

if hasattr(Color, input_var):
    print('Everything is fine and dandy.')
Run Code Online (Sandbox Code Playgroud)

产量

Everything is fine and dandy.
Run Code Online (Sandbox Code Playgroud)