Forum
>>
Principianti
>>
[Risolto] Impostare classe figlia
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
|
Scritto da h |
2016-01-07 14:09:27 - [Risolto] Impostare classe figlia
|
|
Salve a tutti ho una domanda sul ruolo di super nella dichiarazione di una classe figlia. Mi spiego meglio, la classe madre:
class Neuron(object):
"""docstring for Neuron"""
def __init__(self, dim, ID):
self.ID=ID
self.dim=dim
self.pos=[rnd.random_sample() for i in range(self.dim)]
self.label=0
la classe figlia: class nearestClassNeuron(Neuron):
"""docstring for nearestClssNeuron"""
def __init__(self, dim, ID, label):
self.ID=ID
self.dim=dim
self.label=label
Prima di tutto vorrei chiedere io devo costruire questa classe figlia a partire dalla classe madre, vorrei quindi costruirla in modo diverso da quello che ho fatto (ma non so come!!!), vorrei che la classe nearestClassNeuron ereditasse da Neuron, oltre che i metodi anche gli attributi "dim" e "ID", come si può fare? La seconda domanda è il ruolo di "super": a cosa serve costruire la classe figlia così aggiungendo la riga: class nearestClassNeuron(Neuron):
"""docstring for nearestClssNeuron"""
def __init__(self, dim, ID, label):
self.ID=ID
self.dim=dim
self.label=label
super(nearestClassNeuron, self).__init__(self, dim, ID) voglio sottolineare che costruito così mi da un errore:
TypeError: __init__() takes exactly 3 arguments (4 given)mi interesserebbe, più che risolvere l'errore, capire il ruolo e il vantaggio di super usato nella costruzione della classe figlia (a quel punto penso risolverei anche l'errore). Grazie a tutti. --- Ultima modifica di h in data 2016-01-09 23:45:58 --- |
|
|
Scritto da Claudio_F |
2016-01-09 15:32:16 - Re: Impostare classe figlia
|
|
Per chiamare __init__ della superclasse si possono usare due sistemi:
class nearestClassNeuron(Neuron):
def __init__(self, dim, ID, label):
super(nearestClassNeuron, self).__init__(dim, ID)
self.label = label
class nearestClassNeuron(Neuron):
def __init__(self, dim, ID, label):
Neuron.__init__(self, dim, ID)
self.label = label
*** Il codice va evidenziato con il simbolo di fianco ai colori per non perdere l'indentazione *** |
Pagina: 1
Esegui il login per scrivere una risposta.
di fianco ai colori per non perdere l'indentazione ***