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.