Domanda Risolto Variabili funzione

nUmErO

Utente Silver
29 Maggio 2017
66
19
8
55
Buon giorno ho appena iniziato a imparare python ma non ho bene capito la parte delle variabili passate tramite self e quale la differenza con il metodo classico ? cioe se io dichiaro una variabile locale in una funzione tramite self posso accedere a quella variabile a ogni funzione che appartiene alla stessa classe ? mi potete fare qualche esempio ? grazie mille
 
Sia data una classe X. Se tu vuoi che una variabile sia campo privato di quella classe, la dichiari con self.nomeVariabile
Senza il self, lo scope e' della sola funzione in cui la utilizzi
 
Buon giorno ho appena iniziato a imparare python ma non ho bene capito la parte delle variabili passate tramite self e quale la differenza con il metodo classico ? cioe se io dichiaro una variabile locale in una funzione tramite self posso accedere a quella variabile a ogni funzione che appartiene alla stessa classe ? mi potete fare qualche esempio ? grazie mille
Fai finta che self ( come dice il nome ) sia una variabile che contiene la reference all oggetto in cui lavori (in effetti è proprio cosi).
Allora richiamando una funzione con self. stai richiamando uma funzione del tuo oggetto ( della classe in cui ti trovi a scrivere ).
Stesso vale per le variabili.
self.var = 10 e var = 10 sono differenti, var = 10 non ha più senso quando la funzione finisce mentre self.var rimane salvato come membro dell oggetto anche dopo che la funzione in cui sei finisce.

Riguardo alla risposta dell' altro utente, in py i membri (o campi come vuoi chiamarli) sono pubblici degli oggetti e non privati.
Potrai usarli anche scrivendo codice al di fuori della classe di appartenenza dell oggetto con
oggetto.membro

Inviato dal mio LG-H870 utilizzando Tapatalk
 
  • Mi piace
Reazioni: nUmErO
Fai finta che self ( come dice il nome ) sia una variabile che contiene la reference all oggetto in cui lavori (in effetti è proprio cosi).
Allora richiamando una funzione con self. stai richiamando uma funzione del tuo oggetto ( della classe in cui ti trovi a scrivere ).
Stesso vale per le variabili.
self.var = 10 e var = 10 sono differenti, var = 10 non ha più senso quando la funzione finisce mentre self.var rimane salvato come membro dell oggetto anche dopo che la funzione in cui sei finisce.

Riguardo alla risposta dell' altro utente, in py i membri (o campi come vuoi chiamarli) sono pubblici degli oggetti e non privati.
Potrai usarli anche scrivendo codice al di fuori della classe di appartenenza dell oggetto con
oggetto.membro

Inviato dal mio LG-H870 utilizzando Tapatalk
grazie alla tua risposta ho capito :D , potresti farmi un esempio del utilizzare la variabile fuori dalla classe come oggetto grazie in anticipo
quello che vorrei fare e creare un oggetto che abbia determinate variabili che rimangono fiche il programma non si chiude e non temporanee come quelle delle locali
 
grazie alla tua risposta ho capito :D , potresti farmi un esempio del utilizzare la variabile fuori dalla classe come oggetto grazie in anticipo
obj = MyClass()
obj.Initialize()
obj.max_value = 100
obj.min_value = 10
rand = obj.GetRandomNumber()

Considera anche che è sconsigliato usare i membri direttamente in questo modo perché non viene all occhio di chi legge la classe che tu stia modificando i membri

È ad esempio migliore se si fa un metodo della classe
def SetValues(self, min_,max_):

Cosi chi legge la classe vede che setti i value e lo fai con quel metodo

Inviato dal mio LG-H870 utilizzando Tapatalk