• 6
name

A PHP Error was encountered

Severity: Notice

Message: Undefined index: userid

Filename: views/question.php

Line Number: 191

Backtrace:

File: /home/prodcxja/public_html/questions/application/views/question.php
Line: 191
Function: _error_handler

File: /home/prodcxja/public_html/questions/application/controllers/Questions.php
Line: 433
Function: view

File: /home/prodcxja/public_html/questions/index.php
Line: 315
Function: require_once

name Punditsdkoslkdosdkoskdo

Implement list-like index access in Python

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]

Is this possible? If so, how do you implement this in the python class in question?

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.

  • 46
Reply Report

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)
  • 3
Reply Report

Trending Tags