Objects in Python
Chris Angelico
rosuav at gmail.com
Thu Aug 23 20:01:17 EDT 2012
On Fri, Aug 24, 2012 at 9:54 AM, Dennis Lee Bieber
<wlfraed at ix.netcom.com> wrote:
> On Fri, 24 Aug 2012 08:00:59 +1000, Chris Angelico <rosuav at gmail.com>
> declaimed the following in gmane.comp.python.general:
>
>>
>> But again, that probably doesn't help explain the variables. Unless
>> you've come from (or can at least imagine) an environment in which you
>> use pointers for *everything*.
>>
> ... but can not manipulate the pointer directly <G>
Right, obviously pointer arithmetic doesn't make sense in Python. But
that's (almost) guaranteed by the fact that there is NOTHING you can
do with bare integers.
foo q = new q; /* note that 'foo' is a typedef that hides the asterisk */
foo w = q +1; /* Pointer arith! Impossible. */
But!
foo e = q + one; /* one is the object representing the integer 1 */
This isn't pointer arithmetic. No C compiler will let you add two
pointers. You can subtract one from another, but you get back a bare
integer, which won't go into a 'foo', so the only thing you could do
that would break stuff is:
foo r = q + (w - e); /* Syntactically valid */
So you just won't do pointer arith if everything's a pointer.
There, I think I just broke a few minds. My task here is done.
ChrisA
More information about the Python-list
mailing list