Attack a sacred Python Cow

Sebastian "lunar" Wiesner basti.wiesner at gmx.net
Thu Jul 24 12:49:16 EDT 2008


Torsten Bronger <bronger at physik.rwth-aachen.de>:

> Hallöchen!
> 
> Bruno Desthuilliers writes:
> 
>> Torsten Bronger a écrit :
>>
>>> Bruno Desthuilliers writes:
>>>
>>>> [...]
>>>>
>>>> How would you handle this case with an implicit 'self' :
>>>>
>>>> class Foo(object):
>>>>    pass
>>>>
>>>> def bar(self):
>>>>    print self
>>>>
>>>> Foo.bar = bar
>>>
>>> Just like this.  However, the compiler could add "self" to
>>> non-decorated methods which are defined within "class".
>>
>> What's defined within classes are plain functions. It's actually
>> the lookup mechanism that wraps them into methods (and manage to
>> insert the current instance as first argument).
> 
> And why does this make the implicit insertion of "self" difficult?
> I could easily write a preprocessor which does it after all.

Who said, that it would be "difficult"?  He just corrected your statement
about definitions inside a class, and did not make any assumption about
making "self" implicit.

I'd assume, that making self implicit wouldn't be that difficult to assume. 
But does the fact, that it could easily be done, alone mean, that it
_should_ be done?  The explicit "self" was a design decision, that can't
really be judged by technical arguments from implementation side.  Its a
discussion about design from a programmers point of view ...

-- 
Freedom is always the freedom of dissenters.
                                      (Rosa Luxemburg)



More information about the Python-list mailing list