Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Python - Errore codice
Forum - Python - Errore codice

Avatar
LukeMilan (Normal User)
Rookie


Messaggi: 42
Iscritto: 30/05/2012

Segnala al moderatore
Postato alle 14:11
Giovedì, 26/06/2014
Codice sorgente - presumibilmente Python

  1. class Tank:
  2.     def __init__(self):
  3.         self.x=8
  4.     def getx(self):
  5.         print self.x
  6.  
  7. class MyBot(Tank):
  8.     Tank.getx()
  9.  
  10. player0=MyBot()



Mi aspetterei 8 in output, invece mi da errore:
TypeError: unbound method getx() must be called with Tank instance as first argument (got nothing instead)

Vorrei assolutamente che le istruzioni siano all'interno della classe MyBot e non "player0.getx()".


PM Quote
Avatar
GN (Member)
Guru


Messaggi: 772
Iscritto: 30/04/2011

Segnala al moderatore
Postato alle 15:52
Giovedì, 26/06/2014
Premesso che di python so poco, non dovresti forse mettere Tank.getx() nel costruttore?
Codice sorgente - presumibilmente Python

  1. class MyBot(Tank):
  2.     def __init__(self):
  3.         Tank.getx()


PM Quote
Avatar
LukeMilan (Normal User)
Rookie


Messaggi: 42
Iscritto: 30/05/2012

Segnala al moderatore
Postato alle 16:06
Giovedì, 26/06/2014
Grazie della risposta, purtroppo sembra non funzionare:

TypeError: unbound method getx() must be called with Tank instance as first argument (got nothing instead)

PM Quote
Avatar
GN (Member)
Guru


Messaggi: 772
Iscritto: 30/04/2011

Segnala al moderatore
Postato alle 20:16
Giovedì, 26/06/2014
Hai ragione scusa non avevo letto bene l'errore, credo che il problema sia che ti stai riferisci alla classe e non all'istanza quando chiami il metodo getx; prova a mettere __self__.getx() oppure solo getx() al posto di Tank.getx() (ti ripeto non sono sicurissimo perchè di Python ho solo delle basi, ma rispondo dato che per ora sembra che non ci sia nessun altro interessato a questo thread).

PM Quote