实现一个可下标的对象很容易,只需__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
可以做同样的事情,但我觉得下标访问更优雅。