Enrico Bianchi: > Uno dei concetti fondamentali che secondo me Python ti insegna e` che la > programmazione ad oggetti non e` per nulla necessaria, ma piuttosto utile > in alcuni frangenti. >
Questo va contro il pensiero "tutto è un oggetto" in python. Ad esempio: un modulo è un oggetto in python, in Java no. un package è un oggetto in python, in Java no. una funzione è un oggetto in python, in java c'è qualcosa dalla 1.6 e si chiama static import di una funzione da una altra classe (porkata) la metaclasse è un oggetto in python, in java è Object e non si tocca. se per programmazione a oggetti intendiamo solo eredità di classi, ossia 'struttura', io oserei dire che python è estremamente più della programmazione a oggetti. Quando fai monkey parching di una funzione dentro a un modulo di fatto stai estendendo quel modulo. E vale anche qui il principio di sostituzione di Liskov. Ogni volta che scrivi un decorator, stai programmando a oggetti anche se non ne sei cosciente. Se poi vuoi implementare qualcosa che possa essere esteso, tramite plugin, sia se usi le classi, sia se usi dei moduli, è comunque programmazione a oggetti. > Dire quindi che si sta sbagliando a non usarla perche` piu` potente della > programmazione procedurale (e non funzionale) e` semplicemente sbagliato e > viziato da preconcetti prvenienti da altri linguaggi (Java e C# in primis) > Ora togliti dalla testa python, e cala questo pensiero su un linguaggio di programmazione solamente procedurale. Vedi che cambia prospettiva, il problema di fondo che vedo è il nostro preconcetto di programmazione procedurale che è sbagliata se lo leggiamo solo in un contesto pythonico. Programmare usando le funzioni in python non significa programmazione procedurale. My2cents
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python