Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #24928 > unrolled thread
| Started by | MRAB <python@mrabarnett.plus.com> |
|---|---|
| First post | 2012-07-05 16:20 +0100 |
| Last post | 2012-07-05 16:20 +0100 |
| Articles | 1 — 1 participant |
Back to article view | Back to comp.lang.python
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: 2 + 2 = 5 MRAB <python@mrabarnett.plus.com> - 2012-07-05 16:20 +0100
| From | MRAB <python@mrabarnett.plus.com> |
|---|---|
| Date | 2012-07-05 16:20 +0100 |
| Subject | Re: 2 + 2 = 5 |
| Message-ID | <mailman.1832.1341501634.4697.python-list@python.org> |
On 05/07/2012 15:34, Laszlo Nagy wrote: > On 2012-07-04 21:37, Paul Rubin wrote: >> I just came across this (https://gist.github.com/1208215): >> >> import sys >> import ctypes >> pyint_p = ctypes.POINTER(ctypes.c_byte*sys.getsizeof(5)) >> five = ctypes.cast(id(5), pyint_p) >> print(2 + 2 == 5) # False >> five.contents[five.contents[:].index(5)] = 4 >> print(2 + 2 == 5) # True (must be sufficiently large values of 2 there...) >> >> Heh. The author is apparently anonymous, I guess for good reason. > > >>> five.contents[five.contents[:].index(5)] = 4 > >>> 5 > 4 > >>> 5 is 4 > True > > But this I don't understand: > > >>> 5+0 > 4 5 is interned as 4, 0 is interned as 0, 4+0 is calculated as 4 and then interned as 4. > >>> 5+1 > 4 5 is interned as 4, 1 is interned as 1, 4+1 is calculated as 5 and then interned as 4. > >>> 5+2 > 6 > 5 is interned as 4, 2 is interned as 2, 4+2 is calculated as 6 and then interned and 6. Simple really! :-)
Back to top | Article view | comp.lang.python
csiph-web