Is an interactive command a block?

Alf P. Steinbach alfps at start.no
Thu Nov 19 15:37:17 EST 2009


The CPython 3.1.1 language reference §4.1 says

   "Each command typed interactively is a block."

It also says

   "If a name is bound in a block, it is a local variable of that block, unless
    declared as nonlocal"

Even with a non-literal try-for-best-meaning reading I can't get this to mesh 
with the actual behavior of the interpreter, e.g.

   >>> for x in "poi":
   ...    fandango = 666
   ...
   >>> fandango
   666
   >>> _

My current understanding is (A) that the interpreter is correct in this respect 
(for one would harldly want the effects of statements to be fundamentally 
different in interpreted mode, except the presentation of expression results), 
and (B), but here I'm less sure, that the documentation is incorrect.

So what I'm asking about is mainly (B), because if the documentation is correct 
after all, then there's something I haven't grokked. :-)


Cheers,

- Alf



More information about the Python-list mailing list