On Jul 15, 6:46 pm, Larry Bates <[EMAIL PROTECTED]> wrote: > [EMAIL PROTECTED] wrote: > > Hi everyone, > > > I've heard that a 'str' object is immutable. But is there *any* way to > > modify a string's internal value? > > > Thanks, > > Sebastian > > Why would you care? Just create a new string (with the changed contents) and > let garbage collection take care of the old one when all the references to it > have gone away. Since these types of questions seem to appear almost every > day > on this list, this Python stuff is so much different than old languages people > have hard time making the conceptual "jump". You can basically quite worrying > about how/where things are stored, they just are. >
Thanks for the reply. It's not that I'm having a hard time learning Python. I've been programming it for some time. I just came across this unusual situation where I'd like to modify a string passed to a function, which seems impossible since Python passes arguments by value. (Whereas in C, you'd customarily pass a pointer to the first character in the string.) I was playing around trying to simulate C++-like stream operations: import sys from os import linesep as endl class PythonCout: def __lshift__(self, obj): sys.stdout.write(str(obj)) return self def __repr__(self): return "<cout>" cout = PythonCout() cout << "hello" << endl But then trying to simulate cin: class PythonCin: def __rshift__(self, string): string = sys.stdin.readline() # which doesn't make sense line = "" cin >> line And there goes the need to modify a string. :) -- http://mail.python.org/mailman/listinfo/python-list