too many self

aurora aurora00 at gmail.com
Thu Sep 16 20:33:50 EDT 2004


Alex Martelli wrote:
> aurora <aurora00 at gmail.com> wrote:
>    ...
> 
>>Of couse I think this syntax the best:
>>
>>   if max < list[index]:
>>      max = list[index]:
> 
> 
> Just to ensure that the best approach,
>     self.max = max(self.max, self.list[index])
> isn't available any more, _and_ you can't use the list built-in name any
> more either?  What a scoop!
> 
> 
> 
>>This remind me of those awful Hungarian notation.
> 
> 
> Explicit scope denotation, and Hungarian notation (which prefixes names
> with type-connected prefix strings), have essentially nothing to do with
> each other, of course.  Making classes implicit scopes (like, say, C++,
> but differently from, say, Modula-3) is simply a horrid mess, where you
> can't use bare names safely without carefully studying all the internals
> of all your ancestor classes... and if any such ancestor ever adds a
> private name it can break every subclass which _did_ use bare names.  A
> bad idea even in a language where the compiler can find out statically
> where every name comes from (because human readers can't), just as bad
> as "from foo import *" in Python or "using namespace foo" in C++ except
> that you can't avoid it by just eschewing one misdesigned construct.
> 
> In a language where even the compiler _cannot_ tell statically which
> bare names come from where (except for functions' locals), criticizing
> the language design choice of _not_ making classes into implcit scopes
> doesn't even _verge_ on the ridiculous -- it plunges right deep into it.
> 
> 
> Alex

I'm not making any serious criticism on the language or how it should do 
name binding. I'm ranting about having to attach a prefix to names often 
make simple things look complicated. An annoyance when it has to be done 
very often. You got the point?



More information about the Python-list mailing list