Am I missing something with Python not having interfaces?

Bruno Desthuilliers bruno.42.desthuilliers at websiteburo.invalid
Fri May 9 04:19:45 EDT 2008


Daniel Marcel Eichler a écrit :
> Am Donnerstag 08 Mai 2008 00:12:26 schrieb 
> bruno.desthuilliers at gmail.com:
> 
>> very often sees do-nothing catch-all try/catch blocks in Java - which
>> is way worse than just letting the exception propagate. I find all
>> this totally pointless, because there's just no way for a compiler to
>> check if your code is logically correct.
> 
> But it's enough if the called method exists and returns the correct 
> type. At least it prevents a crash.

Then providing an appropriate default in the base class is enough too.

>>> Interfaces work at
>>> compile-time, while method-stubs raise at their first call, so in
>>> worst case, never.
>> And then ? If it's never called, why bother implementing it ?
> 
> You never can't say when it's called at least, that's the point. 

Either the method is actually called somewhere and you'll now it pretty 
soon, or it isn't and you don't care.

>>> That's the point. Interfaces garantee that a duck is a duck, an not
>>> only a chicken that quack.
>> Who cares if it's a chicken as long as it quacks when you ask her to
>> ? Now *This* is the whole point of chicken^Mduck typing, isn't it ?-)
> 
> Ducks can also swim and fly.  And if you need a really duck,

If you're code expects something that quacks, swims and flies, anything 
that quacks, swims and flies is ok. You just don't care if it's a duck 
or a flying whale with a quacking device tied to it.

> but have 
> onyl a chicken while the coder was to bored to make one...

Then the coder have a nice traceback, and it's not *your* problem - as 
long as the expectations are clearly documented, it's the user's (ie: 
coder) duty to provide something that fullfil the expectations.

> Of course, in the practical world that all doesn't  matter. But in the 
> theoretical world of the big coding farms, called business, that's one 
> cornerstone of success, in the tinking of managers and so.

Sorry, I live in a very practical world - and we're by no mean running 
out of business here...




More information about the Python-list mailing list