On Thu, 18 Jan 2007 03:58:22 -0800, 0k- wrote:

> hello!
> 
> i started to write a game in python in which i want to implement
> "dynamically attachable" attributes.

All attributes in Python are dynamically attachable.

>>> class Parrot:
...     pass
...
>>> p = Parrot()
>>> hasattr(p, "plumage")
False
>>> p.plumage = "beautiful red"
>>> p.plumage
'beautiful red'


[snip]

> class Thing(object):
>     props = {}
>     def __init__(self):
>         self.props["text"] = TxtAttr("something important")
> 
> t1 = Thing()
> t2 = Thing()
> 
> t2.props["text"].value = "another string"


Have you considered a simpler class like this?

class Thing(object):
    def __init__(self, value="something important"):
        self.text = TxtAttr(value)

t2 = Thing("another string")

Then, instead of writing t2.props["text"].value (four lookups) you would
just write t2.text (two lookups).



-- 
Steve.

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to