[Python] diversi __init__ ??

Y3s y3s a katamail.com
Mer 30 Gen 2008 15:13:10 CET


Il giorno 30/gen/08, alle ore 15:01, Java ha scritto:

>
>> Come risolve lo stesso problema Python? Il tipo è ininfluente, fare
>> funzioni che accettano un numero variabile di argomenti è banale,
>> comodo da gestire e piuttosto gradevole da leggere (again, named
>> parameters).
>>
>>
> Ora non esageriamo, non è che tutto ciò che fa python è bello e
> fantastico e ciò che fanno altri linguaggi fa schifo.

Penso che nessuno qui dentro la pensi così, anzi in genere chi usa  
python conosce e usa almeno un altro linguaggio...

> L'overloading è molto comodo proprio per migliorare la leggibilità del
> codice.

Se non hai altre soluzioni, si...


> supponi di avere 10 metodi overloadati (ARGH!). E supponi che  
> ognuno sia
> di 100 righe di codice.
> Secondo te è meglio avere un unico metodo con tutti gli if chee in  
> base
> alla combinazione di valori passati per parametro esegue uno o l'altro
> ramo dell'if-then-else?

La tipizzazione in python è dinamica. Questo significa che in molti  
dei casi in cui in linguaggi a tipizzazione statica devi fare un  
overload, in python usi una sola funzione con i suoi parametri, e ti  
funziona in ogni caso. Nei casi rimanenti, la cosa più leggibile è  
creare diverse factory (per i costruttori) o metodi con nomi più  
indicativi IMHO.

>
> Io ritengo che sia meglio avere 10 metodi separati, ognuno con i suoi
> commenti e la sua documentazione.

Cosa che puoi tranquillamente fare anche in python. 10 metodi  
separati, ognuno con i suoi commenti, la sua documentazione e  
soprattutto il suo nome, che se scelto bene vale un 50% della  
documentazione!


--
Antonio Valente




More information about the Python mailing list