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. _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python