Why less emphasis on private data?

Neil Cerutti horpner at yahoo.com
Mon Jan 8 15:53:40 CET 2007


On 2007-01-08, Paul Rubin <http> wrote:
> 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.

When faced with this situation, is there any way to proceed
besides using composition instead?

-- 
Neil Cerutti
We've got to pause and ask ourselves: How much clean air do we really need?
--Lee Iacocca



More information about the Python-list mailing list