[Python] Salve.

Fabrizio Mancini mr.file a gmail.com
Ven 22 Mar 2013 09:19:42 CET


Il 22 marzo 2013 09:05, Gabriel Battaglia (Kriyaban)
<iz4apu a libero.it> ha scritto:
> Buongiorno a tutti.
> Sono un principiante assoluto del linguaggio che intendo apprendere per puro
> divertimento e per dare sfogo alla mia creatività.
Ciao e benvenuto

> Ho letto per intero, non studiato... il tutorial di Guido Vanrossum, il
> libro di Marco beri e sono ad 1/3 di Pensare da informatico. Dove possibile,
> leggo in italiano ma posso mettermi anche su testi in inglese.
Ottime scelte! di ottimo ci sta anche la documentazione di python,
altrimenti ho sentito parlare bene del libro di alex martelli anche e
mark lutz.

> Python mi sembra affascinante e divertente, tuttavia, come logico che sia,
> ci sono degli "scalini" concettuali che bisogna necessariamente superare nel
> processo di apprendimento. Uno di questi, per me, sono le classi.
> penso di aver afferrato l'idea generale purtuttavia, mi riesce estremamente
> difficile famigliarizzare con la sintassi. Gli esempi che trovo spesso danno
> per scontate conoscenze che non posseggo o implementano cose non necessarie
> a chi guarda la definizione di classe per la prima volta. In particolare e
> mi rendo conto che questo probabilmente farà sorridere il 99% di chi mi
> legge, sono abbastanza confuso dal termine self.
>
> class miaclasse():
>    def metodo(self): #Perchè self?
>        self.a = 15 #di nuovo, perchè? Cosa succede se non lo metto? che
> cos'è self.a?
Il termine self riportato all'interno della classe è un riferimento
esplicito alla classe stessa.
Questo perchè ci possono essere delle variabili globali con lo stesso
nome che hanno valore dentro il modulo (file.py) che stai scrivendo e
che hanno lo stesso nome della variabile che stai usando.
Ad esempio a livello di modulo potresti scrivere cosi

# prova.py
a= 10

class miaclasse():
    def metodo(self):
        global a # dichiari che la variabile a è globale
        self.a = 5
        print "self.a = ", sefl.a
        print "a = ",
mc = miaclasse() # istanzi la classe e la assegni alla variabile mc
mc.metodo() # chiami il metodo

se esegui questo modulo capisci le differenze tra le variabili e
l'utilizzo di self.
Questo spiegato da me è uno degli esempi più stupidi, ma per
approfondimenti sul self lascio la parola ai più esperti.

> Oppure ancora, avreste da suggerire
> qualche materiale da leggere online (per i libri cartacei ho delle
> difficoltà), che affrontino la spiegazione delle classi da un altro punto di
> vista?
vedi sopra, per il materiale esclusivamente online ribadisco la
documentazione di python che è ottima. Pensare da informatico ti serve
per capire i concetti generali, poi puoi passare direttamente alla
documentazione di python che è chiarissima e ricca di esempi-

> In fine, è corretto e accettato dal regolamento di questa mailing list, che
> io vi posti ogni tanto le mie curiosità, anche se si tratta di domande
> estremamente banali?
Non ci sono domande banali o domande intelligenti, la lista è qui
apposta per  questo, ma tieni sempre conto che la gente super
competente (tranne me) che gira qui dentro risponde sempre nel proprio
tempo libero, quindi abbi pazienza se qualche volta non ti rispondono
subito.

Ciao
Fabrizio


Maggiori informazioni sulla lista Python