chad <cdal...@gmail.com> writes: > Maybe I'm being a bit dense, but how something like > > [cdal...@localhost oakland]$ python > Python 2.6.2 (r262:71600, May 3 2009, 17:04:44) > [GCC 4.1.1 20061011 (Red Hat 4.1.1-30)] on linux2 > Type "help", "copyright", "credits" or "license" for more information. > >>> spam > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > NameError: name 'spam' is not defined > >>> > > Generate an error
Because code that uses ‘spam’ as a reference was executed. > but something like > >>> def foo(x, y): > ... pass > ... > >>> > > Doesn't? Because no names were used as references. > I mean, in the first case, 'spam' isn't bound to anything. Right, and yet you asked the Python interpreter to resolve it as a reference. Hence the NameError. > Likewise, in the second case, both 'x' and 'y' aren't bound to > anything. And nothing has yet asked the Python interpreter to resolve them as references. Instead, you defined a function object and bound that object to the name ‘foo’. > I don't see why the interpreter doesn't complain about 'x' and 'y' not > being defined. I'd advise that you need to *do* (not just read, but actually perform) the whole Python tutorial from start to finish, to get a good grounding in concepts in a sensible order <URL:http://docs.python.org/tutorial/>. -- \ Moriarty: “Forty thousand million billion dollars? That money | `\ must be worth a fortune!” —The Goon Show, _The Sale of | _o__) Manhattan_ | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list