Is there a reason not to do this?

Hendrik van Rooyen mail at microcorp.co.za
Sat Dec 2 00:14:48 EST 2006


"Ron Garret" <rNOSPAMon at flownet.com> wrote:

> > I don't want to get into a philosophical debate.
>
> Actually, I changed my mind.  Consider:
>
> def g(): print 'G'
>
> def h(): print 'H'
>
> def f(): g()
>
> class C1:
>   def m1(self): f()
>
> class C2:
>   def m1(self): g()
>
> c1 = C1()
> c2 = C2()
>
> def f(): h()
>
> class C2:
>   def m1(self): h()
>
> c1.m1()  # Prints H
> c2.m1()  # Prints G
>
> On what principled basis can you justify two different outputs in this
> case?  Why should I be able to change the definition of f and not have
> to go back and recompile all references to it, but not m1?

This feels to me as if you are changing the specification of what wood to use
from yellowood to teak after the chair has already been made.

But maybe I am just simple minded...

- Hendrik




More information about the Python-list mailing list