Please use a more informative subject next time. Jim Hendricks wrote: > 1) global vars - python sets scope to the block a var is declared > (1st set),
http://docs.python.org/ref/global.html I'm afraid not. Python only interprets the listed name(s) as globals. > 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). Yes, globals need to be defined before you can access them using "global". > 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. But nonetheless, both a function and a string literal have their own set of methods. You can look at them using "dir", a function to show attributes (the pythonic word for fields/methods) of objects. >>> def test(): ... print "test" ... >>> dir(test) ['__call__', '__class__', '__delattr__', '__dict__', '__doc__', '__get__', '__getattribute__', '__hash__', '__init__', '__module__', '__name__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', 'func_closure', 'func_code', 'func_defaults', 'func_dict', 'func_doc', 'func_globals', 'func_name'] >>> dir("honk") ['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__str__', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'] >>> > 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. BTW, don't confuse "class" and "object". Classes also are objects. >>> import os >>> dir (os) [[...], '__all__', '__builtins__', '__doc__', '__file__', '__name__', '_copy_reg', '_execvpe', '_exists', '_exit', '_get_exports_list', '_make_stat_result', '_make_statvfs_result', '_pickle_stat_result', '_pickle_statvfs_result', '_spawnvef', 'abort', 'access', 'altsep', 'chdir', 'chmod', 'chown', 'chroot', 'close', 'confstr', 'confstr_names', 'ctermid', 'curdir', 'defpath', 'devnull', 'dup', 'dup2', 'environ', 'error', 'execl', 'execle', 'execlp', 'execlpe', 'execv', 'execve', 'execvp', 'execvpe', 'extsep', 'fchdir', 'fdatasync', 'fdopen', 'fork', 'forkpty', 'fpathconf', 'fstat', 'fstatvfs', 'fsync', 'ftruncate', [...]] >>> Regards, Björn -- BOFH excuse #205: Quantum dynamics are affecting the transistors -- http://mail.python.org/mailman/listinfo/python-list