Implement list-like index access in Python

前端 未结 2 1037
无人及你
无人及你 2020-11-29 09:44

I\'d like to be able to access some values of a python object using array-like syntax, ie:

obj = MyClass()
zeroth = obj[0]
first = obj[1]

I

2条回答
  •  清酒与你
    2020-11-29 10:41

    You need to write or override __getitem__, __setitem__, and __delitem__.

    So for example:

    class MetaContainer():
        def __delitem__(self, key):
            self.__delattr__(key)
        def __getitem__(self, key):
            return self.__getattribute__(key)
        def __setitem__(self, key, value):
            self.__setattr__(key, value)
    

    This is a very simple class that allows indexed access to its attributes.

提交回复
热议问题