[EMAIL PROTECTED] a écrit :
> OK, it's a scripting language.

For which definition of "scripting language" ?-)

>>>> def g():
> ...    os.remove('tokeneizer.pyc')
> ...    reload( tokeneizer )
> ...    tokeneizer.tokenize('sample_decaf.d')
> ...
> 
> But that gets me to:
> 
> ... line 110, in get_toks
> UnboundLocalError: local variable 'line_ptr' referenced before
> assignment
> 
> Here's a bit of the code, with line #s
> 
> ...
> 68 global line_ptr
> 69 global char_ptr
> ...
> 75 line_ptr = 0
> 76 char_ptr = 0
> ...
> 109 def get_toks( text ):
> 110     while line_ptr < last_line:
> ...
> So when is a global var global?

Short answer : never !-)

Long answer:

First point: "global" really means "module level" - there's no 
"application global" namespaces.

Second point: every name declared as the top-level is global - according 
to the above definition. So there's no need to declare them as such. The 
only place where you need the global statement is when you want to 
rebind a module-level name from within a function. And it's in this 
function that you need to declare the name as global.

FWIW, this is documented.

Last point: Python is not C, and it definitively doesn't have pointers. 
Trying to write C in Python is a waste of time and an experiment in 
frustration (just like trying to write language XXX in language YYY for 
any distinct values of XXX and YYY).

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

Reply via email to