Implement list-like index access in Python

前端 未结 2 1023
无人及你
无人及你 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.

    0 讨论(0)
  • 2020-11-29 10:44

    Use the __getitem__ and __setitem__ methods.

    class MyClass:
        def __getitem__(self, key):
            return some_value_related_to_key
    
        def __setitem__(self, key, value):
            # set value (if needed)
    
    0 讨论(0)
提交回复
热议问题