2013-09-05 4 views
5

Ho il seguente pezzo di codice:funzione Python restituisce None

def retornaReplicas(verify_key): 
    connection = sqlite3.connect('servidor.db') 
    cursor = connection.cursor() 

    sql = 'SELECT replicas FROM arquivos_sad WHERE verify_key="%s"' % (verify_key) 
    cursor.execute(sql) 
    resultado = cursor.fetchone() 

    return '@'.join(resultado) 

io sono il debug di questo codice su Python terminale interattivo e se lo faccio:

print retornaReplicas(verify_key) 

E restituisce 'Nessuno'. Ma se digito i comandi manualmente (invece di una funzione) in questo modo:

connection = sqlite3.connect('servidor.db') 
cursor = connection.cursor() 

sql = 'SELECT replicas FROM arquivos_sad WHERE verify_key="%s"' % (verify_key) 
cursor.execute(sql) 
resultado = cursor.fetchone() 
print '@'.join(resultado) 

funziona. Python non da errori. Perché questa istanza di ritorno non funziona?

BTW, verify_key è un UUID che ho impostato manualmente per scopi di debug (ed è un valore noto) e questo codice utilizza database sqlite3 per effettuare una consultazione.

+2

Puoi postare il resto del codice? Sospetto qualcosa sul tuo 'import's –

+2

Il codice funziona bene per me (anche se avrei usato i parametri SQL invece dell'interpolazione). –

risposta

1

Scusa, ora ha funzionato. Penso che qualcosa che ho importato prima abbia fatto qualche bug strano o qualcosa del genere. Dopo l'uscita dal vecchio guscio e l'apertura di un altro ha funzionato.

Btw, non inserisco l'intero codice perché è un casino sanguinoso. Non mi piace davvero, ma questo non è in origine il mio codice e non ho davvero il tempo di riscriverlo (questo è il mio progetto per laurearmi in Informatica).

+0

Per favore contrassegna la tua risposta come quella corretta, in modo che la tua risposta non compaia più nell'elenco delle domande senza risposta. –