Per qualche ragione, il metodo super()
non sempre comporta come previsto, optando per tornare:Python super() non credibile
TypeError('super(type, obj): obj must be an instance or subtype of type)'
Capisco che cosa l'errore significa. Non capisco perché si presenta come un errore. Ecco il frammento di codice che si sta rompendo. Tutti gli oggetti nel sistema sono nuovi oggetti di stile.
Ciò che è veramente interessante è che questo errore non è sempre. Non so cosa lo stia causando. Il metodo in Retrieval
passa la classe Retrieval
e quindi se stesso come un oggetto, che è, per quanto ne so, esattamente come super()
è supposto da invocare.
Qualche idea?
Nel file di DBConnection.py:
class DBAdminConnection(object):
def __init__(self):
self.user = DBUserConnection().user
self.submissions = DBSubmissionConnection()
Nel file di Retrieval.py
class Retrieval(DBConnection.DBAdminConnection):
def __init__(self, username=None, password=None, unique_key=None):
super(Retrieval,self).__init__()
if username and password:
self.username = username
self.user.login(username,password, config.DATABASE)
if self.user.error:
raise UserLoginError(username)
self.unique_key = unique_key
Si tratta di Webpy. Quindi questa è una possibilità definita. Tanto più che se uccido l'istanza dell'app e la respawn, il problema scompare. Wow. Ora la domanda diventa come diamine di aggiustarlo. –
@TomThorogood: come stai gestendo la tua app? Stai usando mod_wsgi? –
@TomThorogood: aggiunto qualcosa nel caso in cui si stia utilizzando wsgi. –