Yinelemeli olarak adlandırılan bir işlev var ve mevcut yineleme düzeyini bilmek istiyorum. Aşağıdaki kod, hesaplamak için kullandığım yöntemi gösterir, ancak beklenen sonuçları vermez.Python'da yineleme çağrısı düzeyini bulma
E.g. I arayacak, benim dizin yapısında :
Dizin Yapısı olan dizinin özyineleme seviyesini yazdırmak bir dizin yolu Verilen:
import os
funccount = 0
def reccount(src):
global funccount
print "Function level of %s is %d" %(src, funccount)
def runrec(src):
global funccount
funccount = funccount + 1
lists = os.listdir(src)
if((len(lists) == 0)):
funccount = funccount - 1
reccount(src)
for x in lists:
srcname = os.path.join(src, x)
if((len(lists) - 1) == lists.index(x)):
if (not(os.path.isdir(srcname))):
funccount = funccount - 1
if os.path.isdir(srcname):
runrec(srcname)
runrec(C:\test)
Sorun: Bir sistem yolu için yineleme düzeyini bulmak için "reccount (Test)" fonksiyonu (Fonksiyon, MainFolder'a giden yol ile çağrılacaktır). Her klasör için yineleme çağrısı seviyesini bilmek istiyorum. (Rehber yalnızca)
Test:
|----------doc
|----------share
|----------doc
|----------file1
|----------bin
|----------common
|----------doc
|----------extras
|----------file2
i prosedürü çağırdığınızda, ben şu sonucu alırsınız: Gördüğünüz gibi
Function level of C:\test is 1
Function level of C:\test\bin is 2
Function level of C:\test\bin\common is 3
Function level of C:\test\bin\common\doc is 3
Function level of C:\test\doc is 3
Function level of C:\test\extras is 3
Function level of C:\test\share is 4
Function level of C:\test\share\doc is 5
, bu bin/ortak/dokümana ilişkin sonuçları yazdırır, bunun 3 yerine yazdırır 4 ve tüm takip eden sonuçlar yanlış
Neden negatif miktar:
Bu şekilde, küresel bir değişkeni gerekmez? – sarbjit