Newbie scopes question

Gonçalo Rodrigues op73418 at
Wed Feb 27 14:37:35 EST 2002

As far as i understand, a class statement opens a new scope.

In the following piece of code

class Outer:
    attribute = "The outer class attribute"

    def __init__(self):
            print attribute
        except NameError:
            print "Attribute not defined!"

def Outer_function():
    local_var = "Local var of the outer function"

    def inner_function():
        print local_var


a = Outer()

What we get printed is

Local var of the outer function
Attribute not defined!

This means that function and class scopes behave differently as fas as
nesting goes. Could someone explain why is this?

Gonçalo Rodrigues

More information about the Python-list mailing list