如何在Python中实现一个可下标访问的类(可下标访问的类,而不是可下标访问的对象)?

5 浏览
0 Comments

如何在Python中实现一个可下标访问的类(可下标访问的类,而不是可下标访问的对象)?

实现一个可下标访问的对象很简单,只需在该对象的类定义中实现__getitem__方法。

但是现在我想要实现一个可下标访问的类。例如,我想实现以下代码:

class Fruit(object):
    Apple = 0
    Pear = 1
    Banana = 2
    #________________________________ 
    #/ Some other definitions,         \
    #\ make class 'Fruit' subscriptable. /
    # -------------------------------- 
    #        \   ^__^
    #         \  (oo)\_______
    #            (__)\       )\/\
    #                ||----w |
    #                ||     ||
print Fruit['Apple'], Fruit['Banana']
#输出:0 2

我知道getattr也可以实现相同的功能,但我觉得下标访问更加优雅。

0