h
Profilo di
Nome | h |
---|---|
Indirizzo email | n/a |
Messaggi | 20 |
-
- 2016-01-07 14:09:27
- [Risolto] Impostare classe figlia
- Forum >> Principianti
- 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 ---
-
- 2015-12-03 12:58:05
- Re: Sul funzionamento di sort()
- Forum >> Principianti
- Ho risolto...
>>> a=[2,4,5,1] >>> b=a[:] >>> b [2, 4, 5, 1] >>> b.sort() >>> b [1, 2, 4, 5] >>> a [2, 4, 5, 1]
un saluto a tutti...
-
- 2015-12-03 12:43:06
- [Risolto] Sul funzionamento di sort()
- Forum >> Principianti
- Salve a tutti,
vorrei capire il corretto funzionamento di sort(), in particolare vorrei capire perchè succede questo:
>>> a=[2,4,5,1] >>> a [2, 4, 5, 1] >>> b=a >>> b [2, 4, 5, 1] >>> b.sort() >>> b [1, 2, 4, 5] >>> a [1, 2, 4, 5]
Perchè nel momento in cui applico sort() alla lista "b" copiata a partire da "a", sort() modifica anche la lista "a"?
--- Ultima modifica di h in data 2015-12-03 12:58:20 ---
-
- 2015-12-02 17:59:11
- Re: Dubbi su classi e oggetti
- Forum >> Principianti
- Ok ho risolto da solo...
>>> from Carta import Carta >>> Carta1=Carta(1,11)
>>> print Carta1 Jack di Quadri
In pratica cerco di chiamare il modulo invece della classe all'interno di esso...
comunque grazie a tutti.
-
- 2015-12-01 13:44:16
- [Risolto] Dubbi su classi e oggetti
- Forum >> Principianti
- Salve a tutti,
sto cercando di creare un oggetto, premetto la mia inesperienza con la programmazione ad oggetti con python, per il momento ho scritto il seguente:
import numpy as np import matplotlib.pyplot as plt class NeuralGas(): def __init__(self, nodesNum=10, epsilon_i=0.3, epsilon_f=0.05, lambda_i=30., lambda_f=0.01): self.nodesNum=nodesNum self.epsilon_i = epsilon_i self.epsilon_f = epsilon_f self.lambda_i = lambda_i self.lambda_f = lambda_f def readFileInput(self,fileName): import readlrn as lrn I=lrn.read("%s")%(fileName) return I
quando vado nella shell:
>>> import NeuralGas as NG >>> ng=NG >>> ng.readFileInput("Lsun") Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'module' object has no attribute 'readFileInput'
non capisco perchè mi dice che non c'è attributo "readFileInput". Inoltre non dovrebbe identificarlo come metodo, invece di attributo?
Grazie a tutti.
Signori chiedo scusa se insisto ma non ci sto più a capire niente. Qualche tempo fa avevo copiato questo codice da una guida, era funzionante ma adesso non più:
class Carta: ListaSemi=["Fiori","Quadri","Cuori","Picche"] ListaRanghi=["impossibile","Asso","2","3","4","5","6",\ "7","8","9","10","Jack","Regina","Re"] def __init__(self, Seme=0, Rango=0): self.Seme=Seme self.Rango=Rango def __str__(self): return (self.ListaRanghi[self.Rango] + " di " + self.ListaSemi[self.Seme]) def __cmp__(self, Altro): #controlla il seme if self.Seme > Altro.Seme: return 1 if self.Seme < Altro.Seme: return -1 #se i semi sono uguali controlla il rango if self.Rango > Altro.Rango: return 1 if self.Rango < Altro.Rango: return -1 return 0
Se dal terminale:
>>> import Carta >>> Carta1=Carta(1,11) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'module' object is not callable
Qualcosa mi sfugge...
--- Ultima modifica di h in data 2015-12-01 17:01:11 ---
--- Ultima modifica di h in data 2015-12-02 17:59:29 ---
-
- 2015-12-01 12:43:40
- un consiglio su come acquisire dati da file .lrn
- Forum >> Principianti
- Salve a tutti,
devo acquisire dati contenuti in un file .lrn. tali dati sono organizzati in questo modo:
% 400
% 3
% 9 1 1
% Key C1 C2
1 3.277701E+000 8.140820E-001
2 3.875770E-001 1.767800E-001
3 2.685460E-001 5.829630E-001
....
Il mio problema è quindi acquisire dati a partire dalla quarta riga. Avevo pensato a qualcosa del genere:def read(fileName): fo=open("/home/h/Documenti/Thesis/FCPS/01FCPSdata/%s.lrn"%(fileName,)) fo.seek(4,1) f = [i.split() for i in fo.readlines()]
ma parte sempre dalla prima riga. Consigli??
Grazie a tutti.
Ho risolto banalmente cancellando i primi quattro valori:
del f[0:4]
tutta via se ci fosse un modo per acquisire direttamente dalla quarta sarebbe preferibile.
--- Ultima modifica di h in data 2015-12-01 12:55:52 ---
-
- 2015-08-05 12:28:13
- Re: Manipolare dati da file, da stringhe a float
- Forum >> Principianti
- Grazie della rapida risposta, solo un chiarimento: nel codice sono visualizzati dei punti interrogativi vicino a "f" tra gli zeri, per cosa stanno?
-
- 2015-08-05 11:46:09
- Manipolare dati da file, da stringhe a float
- Forum >> Principianti
- Salve a tutti, ho il seguente problema: ho un file.dat contente delle osservazioni organizzate in questo modo:
2015-06-05T22:45:29.8 -1.5004 .02847384765008059110
2015-06-05T22:48:14.8 -1.5315 .02895876378576958522
2015-06-05T22:52:48.5 -1.5154 .03136000637755037192
...
la prima colonna contiene la data, vorrei organizzare una matrice digitale che abbia come seconda e terza colonna elementi identici (float), mentre vorrei che la prima colonna vorrei iniziasse con 0 e contenesse le differenze rispetto allo zero. In poche parole vorrei trasformare la stringa in float e quindi fare una operazione di differenza. il risultato dovrebbe avere questo aspetto:
0.000 -1.5004 .02847384765008059110
235.0 -1.5315 .02895876378576958522
...
dove 235 sono i secondi trascorsi tra il secondo e il primo. Suggerimenti su come procedere??
-
- 2015-07-18 11:20:23
- settare il label di un oggetto: libreria Phoebe
- Forum >> Principianti
- Salve a tutti, avviso che sto lavorando con la libreria di python Phoebe. Poiché inesperto stavo semplicemente seguendo una guida :
http://www.phoebe-project.org/docs/future/testsuite.simple_binary02.html
per il fit di un sistema binario.
Adesso il codice completo postato su pastebin: http://pastebin.com/aeTsCJnU
Adesso il primo errore, relativo alla riga: 23:
>>> input_lc.get_parameter('pblum').set_adjust(True)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'set_adjust'
un altro errore mi viene segnalato alla riga 39:
>>> star1 = phoebe.BinaryRocheStar(comp1, mesh=mesh, pbdep=[lcdep,rvdep])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/phoebe/backend/universe.py", line 7975, in __init__
orbit['c2label']))
ValueError: Cannot figure out which component this is: the label in 'component' is '2cf23e7e-ce67-4652-9e8f-5f50ecd57d08', but 'orbit' mentions '2f704024-9f3f-4ca9-9f92-d51e96eb9e50' as the primary, and '960f37a0-fc84-4870-b6d9-d6b443553844' as the secondary. Please set 'c1label' or 'c2label' in 'orbit' to match this component's label.
è sopratutto quest'ultimo che vorrei risolvere.
grazie a tutti.
-
- 2015-07-16 18:26:39
- Re: Gestire libreria Phoebe
- Forum >> Principianti
- ok ho risolta era banale.... come tutti gli errori dei "principianti"... bastava dare il percorso assoluto.