[Python] Salve.

Marco Giusti marco.giusti a gmail.com
Ven 22 Mar 2013 10:17:38 CET


On Fri, Mar 22, 2013 at 09:19:42AM +0100, Fabrizio Mancini wrote:
> Il 22 marzo 2013 09:05, Gabriel Battaglia (Kriyaban)
> > 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.

ehm, forse volevi dire all'oggetto.

	class A:
		pass

	a = A
	b = B()

`a` è un riferimento alla classe, `b` è un riferimento all'oggetto.
forse è più corretto dire che è il nome di un riferimento infatti il
parametro `self` _non deve_ essere chiamato così ma è fortemente
consigliato per congruenza. Altri linguaggi come il java i metodi non
hanno un parametro esplicito per referenziare l'oggetto ma utilizzano
una keyword del linguaggio, this nel caso di java.

	class Spam:

		def foo(self):
			print self

		def bar(s):
			print s

in questo caso `foo` e `bar` hanno esattamente lo stesso comportamento.
in generale gli oggetti in python non sono molto diversi che in altri
linguaggi quindi può valere la pena di leggere qualcosa a proposito
della programmazione ad oggetti stessa e poi utilizzare le risorse che
tu stesso hai indicato come riferimento per quei dettagli specifici di
python. confermo che il libro di martelli è un buon libro ma datato,
allora python2.5 non era ancora uscito, e soprattutto non una guida di
base per la programmazione ma piuttosto una guida di riferimento.

non so' se "pensare da informatico" è "dive into python" ma
"dive into python", e probabilmente "dive into python3" ma non l'ho
letto, è un'ottima introduzione per chi inizia. (sono sempre online?)

m.


Maggiori informazioni sulla lista Python