The following code will print a message only once: class PrintOnce: printOnce = True
def __init__(self): if PrintOnce.printOnce: print 'Printing once.' PrintOnce.printOnce = False first = PrintOnce() second = PrintOnce() The following code will do the same thing for a nested class: class Outer: class Inner: printOnce = True def __init__(self): if Outer.Inner.printOnce: print 'Printing once.' Outer.Inner.printOnce = False def __init__(self): first = Outer.Inner() second = Outer.Inner() outer = Outer() However the following code, which has a private nested class, does not work: class Public: class __Private: printOnce = True def __init__(self): print 'Creating a __Private instance' if Public.__Private.printOnce: print 'Printing once.' Public.__Private.printOnce = False def __init__(self): print 'Creating a Public instance' first = Public.__Private() second = Public.__Private() public = Public() Attempting to run the code will produce this error: AttributeError: class Public has no attribute '_Private__Private' What can be done so that this private nested class can have the same functionality as the public nested class? -- http://mail.python.org/mailman/listinfo/python-list