Oppure

Loading
12/08/10 16:38
Lord_morpheus
salve ragazzi ,sto imparando il python e facendo un esercizio per creare le classi mi da errore non capisco il perchè... sapete aiutarmi?
>>> class Cibo:
    def _init_(self, proteine =0,
         carboidrati =0,
         grassi =0):
         self.proteine = proteine
         self.carboidrati = carboidrati
         self.grassi =grassi
         pasta = Cibo (proteine=12, carboidrati=72, grassi=1)
         print pasta.carboidrati

        
>>> print pasta.carboidrati

Traceback (most recent call last):
File "<pyshell#33>", line 1, in <module>
print pasta.carboidrati
NameError: name 'pasta' is not defined :d:d
aaa
12/08/10 17:00
nihal
Dà quell'errore perchè hai dichiarato "pasta" all'interno della classe Cibo. Se vuoi far funzionare quel codice, devi togliere l'indentazione alla riga in cui istanzi l'oggetto pasta...
aaa
12/08/10 17:25
The Newbie
class Cibo:
   def _init_(self, proteine =0,carboidrati =0,grassi =0):
      self.proteine = proteine
       self.carboidrati = carboidrati
       self.grassi = grassi

pasta = Cibo(proteine=12, carboidrati=72, grassi=1)
print pasta.carboidrati



p.s. non è necessario scrivere il nome della variabile per il metodo di inizializzazione nel costruttore se utilizzi tutti i parametri. i nomi sono necessari solo se non li utilizzi tutti e non ordinatamente
Esempio
pasta = Cibo(proteine = 12, grassi = 1)
Ultima modifica effettuata da The Newbie 12/08/10 17:29
aaa
13/08/10 5:43
Lord_morpheus
si quell'err del print l'avevo corretto,ma poi perchè mi dice NameError: name 'pasta' is not defined
l'ho definito alla 6 riga no? scusate l'ignoranza
aaa
13/08/10 6:51
The Newbie
guarda che anche l'istanziazione dell'oggetto pasta si trova con indentazione errata, te lo avevo scritto anche nel codice sorgente che ho postato;

l'errore che hai fatto in sunto è questo: hai istanziato un oggetto all'interno del metodo di inizializzazione della classe da cui dipende
aaa
13/08/10 8:19
Lord_morpheus
ah scusa non avevo guardato bene... molte grazie:k:
aaa
13/08/10 8:31
Lord_morpheus
mi da sempre errore... scusa il disturbo ma puoi postarmelo come andrebbe scritto il sorgente...
aaa
13/08/10 8:35
Lord_morpheus
>>> class Cibo:
def _init_(self, proteine =0,carboidrati =0,grassi =0):
self.proteine = proteine
self.carboidrati = carboidrati
self.grassi = grassi

pasta = Cibo(proteine=12, carboidrati=72, grassi=1)
print pasta.carboidrati
File "<pyshell#8>", line 4
self.carboidrati = carboidrati
^
IndentationError: unexpected indent
>>>

boooooooooooooo
aaa