「Python コード添削道場」を添削する その 2

もうひとつ指摘しておきたい。プレゼンでは、次のようなコードが紹介された。

NUMBER_CLASSES = [int, float, long]
def isnumber(obj):
    return any(isinstance(obj, cls) for cls in NUMBER_CLASSES)


添削結果は、「このコードはよいコードです。ただし、complex を忘れないであげてください。」というものだった。

しかし、isinstance() の第 2 引数は tuple を使って複数の type を指定できるよね? だから any() とか使わなくても、こんなコードで済む。また any() や generator を使わない分、動作も速いはず。

def isnumber(obj):
    return isinstance(obj, (int, float, long, complex))


・・・なんて指摘してみたけど、この添削道場は間違いなくためになる。ぜひ次回も開催されることを期待したい。

#どう書く?.org に添削機能ってあったっけ?