2015-01-12 21:23 GMT+01:00 Raffaele Salmaso <raffa...@salmaso.org>: > 2015-01-12 20:08 GMT+01:00 Manlio Perillo <manlio.peri...@gmail.com>: > >> Una delle cose (forse l'unica) che non mi piacciono di Python sono le >> classi >> alla C++ >> > Potresti elaborare meglio? Perché non ti piacciono? Come le preferiresti? >
Le preferisco come sono in Go e Julia, giusto per intenderci. Go ha le interfacce, che si possono embedare (invece di ereditare). Le interfacce vengono implementate "nominativamente", ossia un tipo non dichiara di implementare le interfacce, ma semplicemente ne implementa i suoi metodi. I metodi di un tipo si definiscono "fuori" dalla definizione del tipo. I metodi possono essere definiti solo per i tipi definiti nello stesso package. L'ereditarietà non è supportata. Go supporta solo il dispatch singolo (che diventa polimorfico per le interfacce), e niente overloading. Non esiste il concetto di costruttore; per costruire un oggetto si definisce una funzione apposita (non "attaccata" al tipo). Julia supporta l'ereditarietà semplice, ma solo per i tipi astratti. Di nuovo, niente ereditarietà multipla. I tipi concreti non supportano l'ereditarietà. I metodi di un tipo si definiscono "fuori" dalla definizione del tipo, con l'esclusione del costruttore (se ricordo bene). Julia supporta il multiple dispatching ed i tipi parametrici. E' possibile definire anche gli operatori (su questo ed altro ricorda Haskell). La differenza tra operatori e funzioni è che gli operatori sono infissi. Il multiple dispatching è il mio preferito, perchè è una generalizzazione dei singolo dispatch +- overloading. Però è disponibile in pochissimi linguaggi, magari c'è la fregatura... > [...] Ciao Manlio
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python