On Tue, Mar 31, 2020 at 07:32:11PM -0000, jdve...@gmail.com wrote:

> If I understand you are proposing a change from StringIO `write` 
> method to `+=` operator. Is it right?

No, that is not correct. The StringIO.write() method will not be changed 
or removed. The proposal is to extend the class with the `+=` operator 
which will add as equivalent to calling write().

> I cannot see any advantage on this proposal since there is no real 
> change in the implementation of StringIO. Or are you proposing any 
> change in the underlying implementation and I have missed that point?

This proposal isn't about enhancing StringIO's functionality.

The purpose of this proposal is targetted at people who are using string 
concatenation instead of assembling a list then calling join. It is 
about leveraging StringIO's ability to behave as a string builder to 
give people a minimally invasive change from the string concatenation 
anti-pattern:

    buf = ''
    # repeated many times
    buf += 'substring'

to something which can be efficient on all Python interpreters:

    buf = StringIO()
    buf += 'substring'
    buf = buf.getvalue()    


> In this case, I disagree with you: StringIO is a stream and I think 
> that it is wrong to make it to "look & feel" like a string. That is my 
> opinion.

Paul has not suggested making StringIO look and feel like a string. 
Nobody is going to add 45+ string methods to StringIO. This is a minimal 
extension to the StringIO class which will allow people to improve their 
string building code with a minimal change.


-- 
Steven
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/V634REJ55ZG6ZPRSMC4MFOSPZPWWOFCU/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to