Kodun diğer bölümlerinde kullanılabilecek değerlerin nasıl döndürüleceğini anlamak için küçük bir kod parçam var. Aşağıda sadece z değişkenini veya erteleme değerini döndürmek istiyorum. Ama bu çalışmıyor. Lütfen birinin neden işe yaramayacağını anlamasına yardım edebilir misiniz?Bir işlevden bir değer döndürülemiyor
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.
Erteleme yazdırıyorsam, aynı zamanda grumbles. Neden?
@IcyFlame kullanabileceğiniz baskı: sorularda ** değil ** değişim kodunu yap!Bütün sorun, 'z' döndürülmesi, ancak bir değişkende saklanmamasıdır, bu değişkeni eklemeye devam etmeyin. –
@MartijnPieters, ancak 'z'' for' döngüsünün kapsamı içinde olduğundan dolayı, onu döndürmek için görünmeyeceğini hissederim – manas
@silent_warrior: Hayır, Python yalnızca modüller ve işlevler için yeni bir kapsam oluşturur (listeyle, Dict ve küme anlatımlarının yanı sıra jeneratör ifadeleri ve lambdalar, özel fonksiyon biçimleridir). Bir döngüde atanan değişkenler, bu kapsamın geri kalanında görünür. –