[Python] Perplesso su come è stato definito __init__: avete qualche spiegazione?
Carlos Catucci
carlos.catucci a gmail.com
Lun 12 Gen 2015 10:31:50 CET
mi sto studiando gli algoritmi che trovo qui:
> http://deeplearning.net/tutorial/lenet.html#lenet per adattarli a
> quello che sto facendo io ora.
>
> Nel far ciò ho delle perplessità riguardanti python che mi lasciano
> interdetto...:
>
> class LeNetConvPoolLayer(object):
> """Pool Layer of a convolutional network """
>
> def __init__(self, rng, input, filter_shape, image_shape, poolsize=(2,
> 2)):
>
> io pensavo che:
> 1) le variabili messe tra parantesi, che sono quelle passate alla
> classe quando viene chiamata, dovessero obbligatoriamente essere tutte
> poi definite in __init__ ,
Tra parentesi dopo il nome della classe trovi le classi da cui eredita, se
non specifichi nulla prende per buono che vuoi usrae la classe base Object
> 2) e che tutte le variabili definite
> all'interno di __init__ fossero tutte variabili dell'instanza della
> classe e,. per questo, dovessero avere self
> invece:
> a) tra tutte le variabili in def __init__
> (self, rng, input, filter_shape, image_shape, poolsize=(2, 2)):
> solo self.input = input e poolsize sono definite
> b) solo alcune delle variabili all'interno di __init__ sono state
> definite con self.
>
Self e' il puntatore all'istanza corrente. Esempio
class Pinco():
.....
a = Pinco()
b = Pinco()
a.valore1 = 10
b.valore1 = 20
Come fa aa capire se valore1 che stiamo usando e' di a o di b? Con self che
punta ad a o a b.
Le variabilile definisci dopo la dichiarazione class Pinco():
class Pinco():
valore1 = None
valore2 = None
def __init__(v1, v2):
self.valore1 = v1
self.valore2 = v2
In questo modo nel momento in cui crei l'oggetto passi come parametri i
valori contenuti nella chiamata a __init__ che e' un Magic Method (ce ne
sono anche altri) che vengono assegnati alle variabili dell'istanza.
Carlos
--
EZLN ... Para Todos Todo ... Nada para nosotros
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20150112/edabc300/attachment.html>
Maggiori informazioni sulla lista
Python