我有一小段代碼,以瞭解如何返回可用於代碼其他部分的值。在下面我只想返回變量z或者數值貪睡。但它不起作用。請有人能幫助我理解爲什麼這不起作用?無法從函數返回值
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.
如果我打印打盹它也抱怨。這是爲什麼?
@IcyFlame:不要在提問** **不改變代碼!整個問題是'z'被返回,但沒有存儲在一個變量中,不要繞過添加該變量。 –
@MartijnPieters,但我覺得既然'z'在'for'循環的範圍內,它將不可見返回 – manas
@silent_warrior:不,Python只爲模塊和函數創建一個新的作用域(使用list,字典和設置理解,以及生成器表達式和lambda,作爲函數的特殊形式)。在該範圍的其餘部分中可以看到循環中分配的變量。 –