Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #65393
| From | Dennis Lee Bieber <wlfraed@ix.netcom.com> |
|---|---|
| Subject | Re: __init__ is the initialiser |
| Date | 2014-02-03 19:38 -0500 |
| Organization | IISS Elusive Unicorn |
| References | (5 earlier) <bl81skFh14iU1@mid.individual.net> <mailman.6313.1391383680.18130.python-list@python.org> <roy-C454F0.18405902022014@news.panix.com> <d37ve99ne6g7m3ijpi4f3mudea3r8t7cu4@4ax.com> <CALwzidmQUqKxFNXpY84jH_-SKmScQqBKqr9PRn4nGFWcBCdM2w@mail.gmail.com> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.6373.1391474302.18130.python-list@python.org> (permalink) |
On Mon, 3 Feb 2014 10:44:21 -0700, Ian Kelly <ian.g.kelly@gmail.com>
declaimed the following:
>
>If Python interns the byte objects though, won't overwriting them lead
>to subtle bugs later on as Python attempts to reuse them? They may
>even be reused already from earlier byte objects with the same values,
>that may or may not still have references.
I suspect Python won't intern the /array/ of bytes; just the references
to the individual values -- and overwriting will change the references to
different interned values. I doubt the interning of the individual values
will appear in the order of the initial key -- and even if they did, any
duplicate bytes in the initial key would start by referencing the first
occurrence, while the randomization process would pick other interned
location.
>>> import array
>>> key = array.array("i", [1, 2, 3, 1, 3, 4])
>>> key
array('i', [1, 2, 3, 1, 3, 4])
>>> for i in key:
... print id(i)
...
3029624
3029600
3029576
3029624
3029576
3029552
>>> for i in range(len(key)):
... key[i] = key[i] * 3 - 2 #imagine this is a random production
...
>>> for i in key:
... print id(i)
...
3029624
3029552
3029480
3029624
3029480
3029408
>>> key
array('i', [1, 4, 7, 1, 7, 10])
>>>
Interesting: the IDs for 1, 2, 3, 4 -- if memory addresses -- are in
descending address order. And that continues through the replacement
values.
--
Wulfraed Dennis Lee Bieber AF6VN
wlfraed@ix.netcom.com HTTP://wlfraed.home.netcom.com/
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Re: __init__ is the initialiser Terry Reedy <tjreedy@udel.edu> - 2014-01-31 22:16 -0500
Re: __init__ is the initialiser Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-02-01 05:23 +0000
Re: __init__ is the initialiser Roy Smith <roy@panix.com> - 2014-02-01 00:25 -0500
Re: __init__ is the initialiser Gregory Ewing <greg.ewing@canterbury.ac.nz> - 2014-02-03 12:15 +1300
Re: __init__ is the initialiser Chris Angelico <rosuav@gmail.com> - 2014-02-03 10:27 +1100
Re: __init__ is the initialiser Roy Smith <roy@panix.com> - 2014-02-02 18:40 -0500
Re: __init__ is the initialiser Chris Angelico <rosuav@gmail.com> - 2014-02-03 11:07 +1100
Re: __init__ is the initialiser Devin Jeanpierre <jeanpierreda@gmail.com> - 2014-02-02 17:24 -0800
Re: __init__ is the initialiser Chris Angelico <rosuav@gmail.com> - 2014-02-03 12:37 +1100
Re: __init__ is the initialiser Devin Jeanpierre <jeanpierreda@gmail.com> - 2014-02-02 17:54 -0800
Re: __init__ is the initialiser Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2014-02-03 08:44 -0500
Re: __init__ is the initialiser Nicholas Cole <nicholas.cole@gmail.com> - 2014-02-03 13:50 +0000
Re: __init__ is the initialiser Ian Kelly <ian.g.kelly@gmail.com> - 2014-02-03 10:44 -0700
Re: __init__ is the initialiser Chris Angelico <rosuav@gmail.com> - 2014-02-04 04:57 +1100
Re: __init__ is the initialiser Nicholas Cole <nicholas.cole@gmail.com> - 2014-02-03 19:57 +0000
Re: __init__ is the initialiser Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2014-02-03 19:38 -0500
Re: __init__ is the initialiser Dave Angel <davea@davea.name> - 2014-02-02 19:35 -0500
Re: __init__ is the initialiser Roy Smith <roy@panix.com> - 2014-02-02 19:45 -0500
Re: __init__ is the initialiser Dave Angel <davea@davea.name> - 2014-02-02 22:14 -0500
Re: __init__ is the initialiser Skip Montanaro <skip@pobox.com> - 2014-02-02 21:15 -0600
Re: __init__ is the initialiser Dave Angel <davea@davea.name> - 2014-02-03 00:06 -0500
Re: __init__ is the initialiser Roy Smith <roy@panix.com> - 2014-02-03 00:12 -0500
Re: __init__ is the initialiser Chris Angelico <rosuav@gmail.com> - 2014-02-03 16:49 +1100
Re: __init__ is the initialiser Ethan Furman <ethan@stoneleaf.us> - 2014-02-02 21:34 -0800
Re: __init__ is the initialiser Rustom Mody <rustompmody@gmail.com> - 2014-01-31 21:31 -0800
csiph-web