Why less emphasis on private data?

Paul Rubin http
Sun Jan 7 22:37:07 EST 2007


Dennis Lee Bieber <wlfraed at ix.netcom.com> writes:
> I'd be quite concerned about the design environment rather than the
> immediate code... Probably need something ugly like...
> 
> from mod1 import B as B1
> from mod2 import B as B2
> class A(B1, B2):
> 	....

Interesting.  I just tried that.  mod1.py contains:

    class B:
        def foo(self): self.__x = 'mod1'

mod2.py contains:

    class B:
        def bar(self): self.__x = 'mod2'

And the test is:

    from mod1 import B as B1
    from mod2 import B as B2

    class A(B1, B2): pass

    a = A()
    a.foo()
    print a._B__x
    a.bar()
    print a._B__x

Sure enough, mod2 messes up mod1's private variable.



More information about the Python-list mailing list