Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Python - aiuto ragazzi
Forum - Python - aiuto ragazzi

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Lord_morpheus (Normal User)
Newbie


Messaggi: 11
Iscritto: 12/08/2010

Segnala al moderatore
Postato alle 18:38
Giovedì, 12/08/2010
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

PM Quote
Avatar
nihal (Ex-Member)
Pro


Messaggi: 109
Iscritto: 12/04/2010

Segnala al moderatore
Postato alle 19:00
Giovedì, 12/08/2010
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...

PM Quote
Avatar
The Newbie (Member)
Pro


Messaggi: 175
Iscritto: 14/07/2010

Segnala al moderatore
Postato alle 19:25
Giovedì, 12/08/2010
Codice sorgente - presumibilmente Python

  1. class Cibo:
  2.    def _init_(self, proteine =0,carboidrati =0,grassi =0):
  3.       self.proteine = proteine
  4.        self.carboidrati = carboidrati
  5.        self.grassi = grassi
  6.  
  7. pasta = Cibo(proteine=12, carboidrati=72, grassi=1)
  8. 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
Codice sorgente - presumibilmente Plain Text

  1. pasta = Cibo(proteine = 12, grassi = 1)


Ultima modifica effettuata da The Newbie il 12/08/2010 alle 19:29
PM Quote
Avatar
Lord_morpheus (Normal User)
Newbie


Messaggi: 11
Iscritto: 12/08/2010

Segnala al moderatore
Postato alle 7:43
Venerdì, 13/08/2010
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

PM Quote
Avatar
The Newbie (Member)
Pro


Messaggi: 175
Iscritto: 14/07/2010

Segnala al moderatore
Postato alle 8:51
Venerdì, 13/08/2010
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

PM Quote
Avatar
Lord_morpheus (Normal User)
Newbie


Messaggi: 11
Iscritto: 12/08/2010

Segnala al moderatore
Postato alle 10:19
Venerdì, 13/08/2010
ah scusa non avevo guardato bene... molte grazie:k:

PM Quote
Avatar
Lord_morpheus (Normal User)
Newbie


Messaggi: 11
Iscritto: 12/08/2010

Segnala al moderatore
Postato alle 10:31
Venerdì, 13/08/2010
mi da sempre errore... scusa il disturbo ma puoi postarmelo come andrebbe scritto il sorgente...

PM Quote
Avatar
Lord_morpheus (Normal User)
Newbie


Messaggi: 11
Iscritto: 12/08/2010

Segnala al moderatore
Postato alle 10:35
Venerdì, 13/08/2010
>>> 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

PM Quote
Avatar
delta (Normal User)
Pro


Messaggi: 96
Iscritto: 01/09/2009

Segnala al moderatore
Postato alle 11:11
Venerdì, 13/08/2010
certo!

Codice sorgente - presumibilmente Python

  1. class Cibo:
  2.    def _init_(self, proteine =0,carboidrati =0,grassi =0):
  3.       self.proteine = proteine
  4.       self.carboidrati = carboidrati
  5.       self.grassi = grassi



il povero Python impazzisce se non lo indenti per bene...
http://it.wikipedia.org/wiki/Indentazione


Codice sorgente - presumibilmente Python

  1. class Cibo(object): #new-style classes
  2.    def _init_(self, proteine =0,carboidrati =0,grassi =0):
  3.       self.proteine = proteine
  4.       self.carboidrati = carboidrati
  5.       self.grassi = grassi
  6.  
  7. class Pasta(Cibo): pass #in pratica eredita tutto da Cibo, essendolo
  8.  
  9. >>>barilla=Pasta()
  10. >>>print barilla.carboidrati
  11. 0
  12. >>>



Ma da che guida stai studiando?

Ultima modifica effettuata da delta il 13/08/2010 alle 11:18
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo