Ho una piccola porzione di codice per capire come restituire i valori che possono essere utilizzati in altre sezioni del codice. Di seguito voglio solo restituire la variabile z, o il valore snooze. Ma non funziona. Per favore qualcuno può aiutarmi a capire perché questo non funzionerà?Impossibile restituire un valore da una funzione
import time
def sleepy(reps, snooze):
t = []
for x in range(reps):
x = time.time()
time.sleep(snooze)
y = time.time()
z = y - x
t.append(z)
print 'difference = ', z*1000
print 'total:', (sum(t)/reps) * 1000
return z
sleepy(10, 0.001)
print z # does not like this.
Se si stampa snooze, si brontola anche. Perché?
@IcyFlame: Do ** non ** codice di variazione di domande!L'intero problema è che 'z' viene restituito ma non memorizzato in una variabile, non andare in giro aggiungendo quella variabile. –
@MartijnPieters ma ritengo che dato che 'z' è all'interno dell'ambito del ciclo' for', non sarà visibile per restituirlo – manas
@silent_warrior: No, Python crea solo un nuovo ambito per moduli e funzioni (con lista, dettare e impostare la comprensione, così come espressioni generatore e lambda, essendo forme specializzate di funzioni). Le variabili assegnate a un ciclo sono visibili nel resto dello stesso ambito. –