On Oct 28, 2008, at 4:45 PM, Steven D'Aprano wrote:

What do you mean by the "name" of an object?  Objects don't generally
have names, unless you explicitly define a .name property and assign
them names.

(Variables have names, of course, but a variable isn't an object -- it's
just a reference to an object.  Many variables may refer to the same
object, so it doesn't make any sense to ask for the name of THE variable
which may be referring to an object at the moment.)

That explanation makes no sense. Given the assignment:

x = 57

if the name of x isn't 'x', then what on earth can it possibly mean to
ask for the name of a variable?

Perhaps you're skimming rather than reading carefully? Variables do have names, as I pointed out, and the name of x is indeed 'x'. But that's not what the OP was asking for -- in your example, he'd be asking for the name of 57 (expecting it to be 'x'). Numbers don't have names; objects don't have names; variables have names, and may refer to numbers or objects.

In languages like Python, the term "variable" is misleading and
confusing.

Oh good grief. Now you're going to try to discard the standard term "variable" as well?

All right then, if you really insist on making Python more mysterious by making up new terms for perfectly ordinary and standard programming concepts, then I suggest the following:

variable: "ariablevay"
value: "aluvay"
reference: "eferencevay"
call-by-value: "allcay-ibay-aluvay"
call-by-reference: (no term needed, since Python doesn't have it)

There. Now we've got a simple mapping from standard terminology to properly mystical Python-culture terms that are nonetheless easy to learn. Agreed?

Best,
- Joe

P.S. Shannon: don't listen to Steven. He's out to confuse you and make Python seem much harder and complex than it really is.

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to