我有一个像这样的枚举
@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"
问题是它不能正常工作。
最佳答案
现在我用这个枚举分配一个变量
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):
关于python-2.7 - 如何在python中检查变量是否为enum类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38393897/