[Python] Oggetti senza attributi

Diego Barrera diegonebarrera a yahoo.it
Gio 10 Ott 2013 23:23:28 CEST


On 09/10/2013 13:53, Manlio Perillo wrote:
> On 09/10/2013 12:46, Diego Barrera wrote:
>> Nei libri sulla programmazione ad oggetti, di solito spiegano
>> come questa sia nata dall'esigenza di incapsulare in uno spazio
>> di nomi sia i dati che le operazioni relative a quei dati.
>
> Se questa è l'esigenza della programmazione ad oggetti, chi l'ha 
> inventata aveva dei seri problemi.
>
> Per fortuna non è così, è questo problema in particolare è risolto 
> benissimo (almeno per quello che mi risulta) senza l'uso del pattern:
>
>    obj = some_class()
>    obj.attribute
>    obj.method()

On 10/10/2013 21:42, enrico franchi wrote:
>
> Come ti hanno fatto notare, fortunatamente il gioco non e' quello.
> Anche se anni di diffusione della programmazione ad oggetti tramite 
> C++ hanno probabilmente creato confusione.
>
> La programmazione ad oggetti e' una questione di *interfacce*, di 
> quello che puoi fare con un oggetto, non di come mantiene lo stato 
> (attributi).
>
Ho cercato di capire quello che mi suggerite:

per quanto riguarda le interfacce mi avete fatto riesumare
un concetto che avevo messo da parte perche' troppo avanzato.

Ma facendo una rapida ricerca ho avuto conferma che quello
che mi ricordavo era corretto in quanto le interfacce sono
proprio un costrutto che in alcuni linguaggi come il java viene
dichiarato con una parola chiave.

Pero' in python, anche se e' possibile utilizzare il pattern, non
esiste di default il concetto di interfaccia; quindi ho riflettuto
sulle vostre parole e ho cercato di astrarre il concetto di
interfaccia:
in realta' e' un modo di pensare al codice che genero!

Cioe', se invece di pensare a come implementare un
comportamento, penso a quali sono le operazioni che l'oggetto
offre verso l'esterno, penso al problema visto dall'alto e, man
mano che scendo, vedo i dettagli implementativi..
inoltre piu' una classe e' astratta, anzi, ben strutturata come
*interfaccia* che offre verso l'esterno, e piu' e' riutilizzabile.

Ora...se non c'ho capito una mazza potete inveirmi contro! :)

Buona notte
Diego


Maggiori informazioni sulla lista Python