Bjoern Schliessmann a écrit : > Jim Hendricks wrote: (snip) >> I see the global keyword that allows access to global vars in a >> function, what I'm not clear on is does that global need to be >> declared in the global scope, > > You can't just declare in Python, you always define objects (and > bind a name to them).
def toto(): global p p = 42 Here I declared 'x' as global without defining it. > Yes, globals need to be defined before you > can access them using "global". For which definition of 'defined' ? >>> p Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'p' is not defined >>> toto() >>> p 42 >>> >> 2) Everything is an object. So then, why the distinction between >> functions/variables and fields/methods. > > Because they are different things to achieve different goals. One > holds data, the other does stuff. Hem... I'm not sure you're really addressing the OP's question here. But anyway: in Python, everything's an object, so the only thing that makes functions a bit specials is that they are callable - as are classes, methods, and every instance of a class implementing __call__ FWIW. So saying 'variables holds data, functions do stuff' is unapplyiable to Python. (snip) >> If a module is an object, would not every function be a method of >> that module and every variable be a field of that module? > > They are. functions are *not* methods of their module. -- http://mail.python.org/mailman/listinfo/python-list