On Jan 30, 2008, at 3:01 PM, Java wrote: > Ora non esageriamo, non è che tutto ciò che fa python è bello e > fantastico e ciò che fanno altri linguaggi fa schifo. > > L'overloading è molto comodo proprio per migliorare la leggibilità del > codice. >
Provo a rispiegarti il concetto: il concetto di overloading in un linguaggio senza tipizzazione statica e con metodi che vengono definiti banalmente per accedere un numero variabile di parametri è inesistente. Non può esistere. > supponi di avere 10 metodi overloadati (ARGH!). E supponi che ognuno > sia > di 100 righe di codice. In una situazione del genere, a prescindere andrei per prima cosa a vedere quanti di questi vengono chiamati, quali hanno senso e comincerei a ripensare se non ho fatto qualche errore di design. Specie se ciascuno è 100 righe di codice (suppongo non fattorizzabile). > 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? > > Io ritengo che sia meglio avere 10 metodi separati, ognuno con i suoi > commenti e la sua documentazione. Capisci quale è il problema? Non è implementabile il concetto: *non* puoi. Non puoi perchè per Python qualunque tipo gli passi non fa differenza, per cui *non* puoi introdurre l'overloading sul tipo senza introdurre la tipizzazione statica (il che sarebbe un assurdo in Python). Se poi vai a vedere come è implementato il linguaggio, capiresti che non è nemmeno possibile fare overloading sul *numero* di parametri. Perchè? Perchè io voglio potere fare questo: meth = foo.theMethod dove theMethod è un metodo. Ecco: quale theMethod mi dovrebbe restituire? Bisogna smettere di pensare con le strutture di altri linguaggi; è un fatto. Non posso lamentarmi che in Python non ho l'unificazione (btw, posso introdurla con una libreria). Se voglio programmare usando l'unificazione userò Prolog o Mozart. > E a tal proposito ne approfitto per scagliare un'altra frecciatina: il > python la "javadoc" se la sogna di notte, poi si sveglia tutto > sudato e > si accorge di avere solo un elenco di funzioni con parametri e valori > restituiti. Ma scaglia frecciatine finchè vuoi: tuttavia, suggerisco di centrare il bersaglio, per evitare di fare figure barbine. > Ma questa è una cosa che riguarda anche tutti gli altri linguaggi > che ho > visto... Allora sei tendenzialmente cieco oppure non hai visto molti linguaggi, oltre che non ti sei nemmeno preso la briga di pensare che esistono strumenti come Doxygen. Doxygen non è parte della libreria standard? Vero: e quindi? In compenso le docstring possono anche contenere casi d'uso *eseguibili*, che dal mio punto di vista Java se la sogna. _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python