1
私はPython 2.7のEnumクラスのpypi enum34バックポートで作業しています。Python 2.7バックポート:enumクラスはabstact enumクラスのインスタンスではありません
from enum import *
class ArtTools(Enum):
pass
class Paintbrushes(ArtTools):
four_inch_brush = 1
two_inch_brush = 2
fan_brush = 3
paint_knife = 4
print type(Paintbrushes.fan_brush) # <enum 'Paintbrushes'>
assert isinstance(Paintbrushes.fan_brush, ArtTools) # True/No Error
print type(Paintbrushes) # <class 'enum.EnumMeta'>
assert isinstance(Paintbrushes, ArtTools) # AssertionError
ペイントブラシがArtToolsでない理由がある:
は、次の点を考慮しますか?これはバグのようです。
enumクラスにはインスタンスを持たないでください。オブジェクト(つまり、渡された参照)がArtToolsの場合はアサートする別の方法がありますか? – Andrew
私は 'issubclass(Paintbrushes、ArtTools)'がtrueを返すと確信しています。それは潜在的にあなたのための修正かもしれませんか? –
これは動作します。ありがとうジョン。 – Andrew