Re: Is this a bug?

Discussion in 'Python' started by Terry Reedy, Jul 17, 2013.

  1. Terry Reedy

    Terry Reedy Guest

    On 7/16/2013 2:04 PM, Ian Kelly wrote:

    > The documentation appears to be wrong. It says:
    >
    > """
    > If a name binding operation occurs anywhere within a code block, all
    > uses of the name within the block are treated as references to the
    > current block. This can lead to errors when a name is used within a
    > block before it is bound. This rule is subtle. Python lacks
    > declarations and allows name binding operations to occur anywhere
    > within a code block. The local variables of a code block can be
    > determined by scanning the entire text of the block for name binding
    > operations.
    > """

    I agree that there is a problem.
    http://bugs.python.org/issue18478

    > But this only applies to function blocks, not the general case. In
    > general, I believe it is more accurate to say that a variable is local
    > to the block if its name is found in the locals() dict.


    That is not true for functions, where names are classified as local
    *before* being added to the locals dict. (Actually, names are usually
    not added to the locals dict until locals() is called to update it).

    It would be better to say that names are local if found in the local
    namespace, and consider that names are added to a function local
    namespace (which is *not* the local() dict) when classified (before
    being bound), but otherwise only when bound.


    That normally
    > won't be true until the variable has been bound. Any references prior
    > to that will look for a global variable.


    At module scope, globals() == locals(). But feel free to suggest a
    different fix for the issue than I did.

    --
    Terry Jan Reedy
    Terry Reedy, Jul 17, 2013
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. John

    Re: BUG? OR NOT A BUG?

    John, Sep 20, 2005, in forum: ASP .Net
    Replies:
    2
    Views:
    533
  2. RedEye
    Replies:
    2
    Views:
    566
    Jason Kester
    Dec 13, 2005
  3. Michel Joly de Lotbiniere

    Bug Parade Bug 4953793

    Michel Joly de Lotbiniere, Nov 30, 2003, in forum: Java
    Replies:
    4
    Views:
    627
    Michel
    Dec 2, 2003
  4. DarkSpy
    Replies:
    4
    Views:
    872
    tom_usenet
    Jun 27, 2003
  5. Steve Holden
    Replies:
    1
    Views:
    383
    Behrang Dadsetan
    Jul 2, 2003
Loading...

Share This Page