私はこのような列挙型を持っています
@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):