I think you're getting to implementation details here. Whether a new string is returned or a reference to the old one is an optimization decision. I don't think it's worth legislating this behavior one way or another (especially since it's mostly a theoretical issue). --Guido On 5/26/06, Walter Dörwald <walter at livinglogic.de> wrote: > Guido van Rossum wrote: > > On 5/26/06, Walter Dörwald <walter at livinglogic.de> wrote: > > [...] > >> And what happens if the separator is an instance of a subclass? > >> > >> class s2(str): > >> def __repr__(self): > >> return "s2(%r)" % str(self) > >> > >> print "foobar".partition(s2("o")) > >> > >> Currently this prints: > >> ('f', s2('o'), 'obar') > >> Should this be > >> ('f', 'o', 'obar') > >> or not? > >> > >> And what about: > >> print s2("foobar").partition("x") > >> Currently this prints > >> (s2('foobar'), '', '') > > > > These are both fine with me. > > split() doesn't behave that way: > > >>> s2("foobar").split("x") > ['foo'] > > Servus, > Walter > > > > -- --Guido van Rossum (home page: http://www.python.org/~guido/)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4