サブスクリプト可能なオブジェクトを実装するのは簡単__getitem__
です。このオブジェクトのクラス定義に実装するだけです。
しかし今、私はサブスクリプト可能なクラスを実装したいと思います。たとえば、次のコードを実装したいと思います。
class Fruit(object):
Apple = 0
Pear = 1
Banana = 2
#________________________________
#/ Some other definitions, \
#\ make class 'Fruit' subscriptable. /
# --------------------------------
# \ ^__^
# \ (oo)\_______
# (__)\ )\/\
# ||----w |
# || ||
print Fruit['Apple'], Fruit['Banana']
#Output: 0 2
同じことができることは知ってgetattr
いますが、下付き文字へのアクセスの方がエレガントだと思います。