Python dönüş ifadesi döngü için kırılmaz
Bir XML yapısı üzerinden yinelemek istiyorum. Kodum çalışıyor gibi görünüyor. Hata ayıklayıcıyı kontrol ettim ve ona ulaştığını gördüm return, ancak fordöngü devam ediyor.
Tavsiyenizi dört gözle bekliyorum, teşekkür ederim!
def get_value(root, item):
for node in root:
if node.tag == item:
return node.tag
else:
get_value(node, item)
return 'Item not found in XML'
Yanıtlar
Burada sorun şu ki, aynı işlevi başka bir deyim olarak adlandırıyorsunuz. Yani eğer else bloğuna girerse, yinelemeli olarak devam edebilir. Fonksiyonu içeriden çağırmaktan kaçınarak kodunuzu değiştirmeye çalışın. Ayrıca, aşağıda vurgulanan döngü için dönüşün içine yerleştirmeniz gerekebilir
def get_value(root, item):
for node in root:
if node.tag == item:
return node.tag
else:
get_value(node, item) ---> This is the problem
return 'Item not found in XML'
returnÖzyinelemeli aramalara başladığınızda bir ifadeyi unuttunuz . Bu, maksimum yineleme sınırına ulaşılana veya bellek tükenene kadar sonsuza kadar devam edeceği anlamına gelir.
kodunu böyle değiştir
def get_value(root, item):
for node in root:
if node.tag == item:
return node.tag
else:
return get_value(node, item)
return 'Item not found in XML'