[PIPython] Mancanza overloading :-(

Luca Marrocco buildup
Ven 19 Nov 2004 15:16:51 CET


On Thu, 16 Sep 2004 10:39:12 +0200
Gianmario Salvetti <salvetti.gianmario a tiscali.it> wrote:

> Salve a tutti. Sono nuovo nella mailing list, ma e' da un po' che 
> utilizzo python. Piu' che un consiglio mi serve una motivazione. Non 
> riesco a farmi una ragione dell'assenza dell'overloading dei metodi. So 
> che esistono motivi tecnici, ma quando mi trovo a dover scrivere 
> qualcosa del tipo
> 
> if classe_oggetto1 = classe1 and classe_oggetto2 = classe1:
>     funzione1(oggetto1, oggetto2)
> elif classe_oggetto2 = classe1 and classe_oggetto2 = classe2:
>     funzione2(oggetto1, oggetto2)
> elif classe_oggetto1 = classe2 and classe_oggetto2 = classe2:
>     funzione3(oggetto1, oggetto2)
> ....
> 
> provo veramente un senso di fastidio. Nel C, potevo accettarlo, ma fare 
> una cosa del genere con un linguaggio di alto livello come il python 
> ....davvero non lo sopporto. Per favore ditemi qualcosa che mi aiuti ad 
> accettare questa cosa (insulti esclusi) ve ne sarei grato.
> 
> p.s.
> per cortesia non chiamate la Neuro.

prova ad usare l'ereditarieta e la programmazione ad oggetti

class Base:
	def funzione(self):
		pass

class DerA(Base):
	def funzione(self):
		print "DerA::funzione"

class DerB(Base):
	def funzione(self):
		print "DerB::funzione"

def funz(objBase1, objBase2):
	objBase1.funzione()
	objBase2.funzione()

a = DerA()
b = DerB()
funz(a, b)
funz(a, a)
funz(b, b)

con un output simile a:
DerA::funzione
DerB::funzione

DerA::funzione
DerA::funzione

DerB::funzione
DerB::funzione



> 
> Gianmario.
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.zope.it/cgi-bin/mailman/listinfo/python



More information about the Python mailing list