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