module confusion

Neil Cerutti horpner at yahoo.com
Thu Oct 4 09:53:14 EDT 2007


On 2007-10-03, Lawrence D'Oliveiro <ldo at geek-central.gen.new_zealand> wrote:
> In message <874ph8sdhx.fsf at benfinney.id.au>, Ben Finney wrote:
>
>> Lawrence D'Oliveiro <ldo at geek-central.gen.new_zealand> writes:
>> 
>>> On my Gentoo system:
>>> 
>>>     >>> import os
>>>     >>> os.path
>>>     <module 'posixpath' from '/usr/lib64/python2.5/posixpath.pyc'>
>>> 
>>> It's just a variable that happens to point to the posixpath module.
>> 
>> There's no "pointing" going on. It's another name bound to the
>> same object, of equal status to the 'posixpath' name.
>> 
>> Python doesn't have pointers, and even "variable" is a
>> misleading term in Python. Best to stick to "name" and "bound
>> to".
>
> In Python, all names _are_ variables. They are not "bound" to
> objects. The value of os.path is a pointer. It's implemented as
> a pointer, it has all the semantics of a pointer.

No. A pointer is also an iterator.

void duplicate(char *d, const char *s)
{
  while (*d++ = *s++)
    ;
}

What does that look like implemented with Python names?

def duplicate(d, s):
  raise AbstractionViolationError("Python identifiers aren't pointers.")

Moreover, it seems difficult to promote the concept of a pointers
in a language which doesn't provide a "take the address of an
object" operation.

> Honestly, why do people react to the word "pointer" as though
> computers have to wear underwear to conceal something shameful
> going on in their nether regions?

Refraining from thinking about pointers (unless I have to) saves
wear and tear on the old bean.  I also like to think of 5 as an
integer most of the time.

-- 
Neil Cerutti
Will the last person to leave please see that the perpetual light is
extinguished --sign at New England church



More information about the Python-list mailing list