如何检查变量是否在python
问题描述:
枚举类型我有这样如何检查变量是否在python
@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):
'enum'是模块,为什么会等于'型(TransactionTypes)' ?你想'如果issubclass(a,enum.Enum):'? – jonrsharpe