Pra*_*gam 6 enums typechecking python-2.7
我有这样的枚举
@enum.unique
class TransactionTypes(enum.IntEnum):
    authorisation = 1
    balance_adjustment = 2
    chargeback = 3
    auth_reversal = 4
现在我正在为此枚举分配一个变量
a = TransactionTypes
我想检查'a'的类型,如果它是枚举和其他东西,如果它不是枚举,则做一些事情
我试过这样的事
if type(a) == enum:
    print "do enum related stuff"
else:
    print "do something else"
问题是它不能正常工作.
Eth*_*man 23
现在我正在为此枚举分配一个变量
a = TransactionTypes
我希望你不是,因为你刚刚分配的a是整个枚举,而不是它的一个成员(例如TransactionTypes.chargeback)如果那是你想要做的,那么正确的测试将是:
if issubclass(a, enum.Enum)
但是,如果您实际上意味着:
a = TransactionTypes.authorisation
然后你需要的测试是:
# for any Enum member
if isinstance(a, Enum):
要么
# for a TransactionTypes Enum
if isinstance(a, TransactionTypes):