Adding variably named fields to Python classes

Posted by Carson Myers on Stack Overflow See other posts from Stack Overflow or by Carson Myers
Published on 2010-05-05T04:31:38Z Indexed on 2010/05/05 4:38 UTC
Read the original article Hit count: 248

Filed under:

I have a python class, and I need to add an arbitrary number of arbitrarily long lists to it. The names of the lists I need to add are also arbitrary. For example, in PHP, I would do this:

class MyClass {

}

$c = new MyClass();
$n = "hello"
$c.$n = array(1, 2, 3);

How do I do this in Python?

I'm also wondering if this is a reasonable thing to do. The alternative would be to create a dict of lists in the class, but since the number and size of the lists is arbitrary, I was worried there might be a performance hit from this.

If you are wondering what I'm trying to accomplish, I'm writing a super-lightweight script interpreter. The interpreter walks through a human-written list and creates some kind of byte-code. The byte-code of each function will be stored as a list named after the function in an "app" class. I'm curious to hear any other suggestions on how to do this as well.

© Stack Overflow or respective owner

Related posts about python