[Python-Dev] Re: adding a bytes sequence type to Python
M.-A. Lemburg
mal at egenix.com
Tue Aug 17 23:58:27 CEST 2004
Roman Suzi wrote:
> On Tue, 17 Aug 2004, M.-A. Lemburg wrote:
>
>
>>Michael Hudson wrote:
>>
>>>Anthony Baxter <anthony at interlink.com.au> writes:
>>>
>>>>A big +1 for a bytes() type, though. I'm not sure on the details,
>>>>but it'd be nice if it was possible to pass a bytes() object to,
>>>>for instance, write() directly.
>>>
>>>If bytes() doesn't implement the read buffer interface, someone
>>>somewhere is going to need shooting :-)
>>
>>Is there any reason you cannot use buffer() ?!
>
> Is it mutable?
> My guess: no:
The buffer object itself can be read-only or read-write.
Unfortunately, the buffer() built-in always returns
read-only buffers. At C level it is easy to create a buffer
object from a read-write capable object.
>>>>d = u'123124'
>>>>ddd[0]
>
> '1'
>
>>>>ddd[1]
>
> '\x00'
>
>>>>ddd[1] = '1'
>
> Traceback (most recent call last):
> File "<stdin>", line 1, in ?
> TypeError: buffer is read-only
>
>
>>It already implements all the necessary things and has been
>>available for many years.
>
>
> It was in the shadows because we had byte-strings.
Right, so why not revive it ?!
Anyway, this whole discussion about a new bytes type doesn't
really solve the problem that the b'...' literal was
intended for: that of having a nice way to define (read-only)
8-bit binary string literals.
We already have a number of read-write types for storing binary
data, e.g. arrays, cStringIO and buffers. Inventing yet another
way to spell binary data won't make life easier.
However, what will be missing is a nice way to spell read-only
binary data.
Since 'tada' will return a Unicode object in Py3k, I think we
should reuse the existing 8-bit string object under the new
literal constructor b'tada\x00' (and apply the same source code
encoding semantics we apply today for 'tada\x00').
--
Marc-Andre Lemburg
eGenix.com
Professional Python Services directly from the Source (#1, Aug 17 2004)
>>> Python/Zope Consulting and Support ... http://www.egenix.com/
>>> mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/
________________________________________________________________________
::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! ::::
More information about the Python-Dev
mailing list