Hello,

I was just playing a bit with Python and I wanted to make a mutable string, 
that supports item assignment. Is the way below the way to do this? 
The part I am not sure about is the class variable. Maybe I should also have 
reimplemented __init__, then call super inside this and add an updated version 
of "self" so __repr__ and __str__ return that. More general: when should class 
variables be used? I am reading about Django nd there they are all over the 
place, yet I have always had the impression their use is not that common.


# Python 2.7.3 (default, Sep 26 2012, 21:53:58)  [GCC 4.7.2] on linux2

class MutableStr(str):
    s = None
    def __repr__(self):
        return MutableStr.s
    def __str__(self):
        return MutableStr.s
    def __setitem__(self, key, item):
         print self[:key], item, self[key+1:]
         self = MutableStr.s = self[:key] + item + self[key+1:]
          return self

# all results below are as intended         
>>> mstr = MutableStr("01234X678")
>>> mstr[5] = "&"
01234 & 678
>>> mstr
01234&678
>>> str(mstr)
'01234&678'
>>> unicode(mstr)
u'01234&678'

Regards,
Albert-Jan


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
All right, but apart from the sanitation, the medicine, education, wine, public 
order, irrigation, roads, a 
fresh water system, and public health, what have the Romans ever done for us?
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to