2017-07-25 8 views
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でない理由がある:

は、次の点を考慮しますか?これはバグのようです。

答えて

1

Paintbrushesはクラスでありインスタンスではないため、ArtToolsまたは他のクラスのインスタンスにはなりません。

+0

enumクラスにはインスタンスを持たないでください。オブジェクト(つまり、渡された参照)がArtToolsの場合はアサートする別の方法がありますか? – Andrew

+1

私は 'issubclass(Paintbrushes、ArtTools)'がtrueを返すと確信しています。それは潜在的にあなたのための修正かもしれませんか? –

+1

これは動作します。ありがとうジョン。 – Andrew

関連する問題