Учитывая пример функции:Как python обрабатывает возвращаемую переменную в функции рекурсии?
def FooBar(foo_exp):
if Bar:
update_Foo(foo_exp)
FooBar(foo_exp)
else:
newNode = fooNode(foo_exp)
print "The value of newNode is ",newNode
return newNode
следующие результаты при вызове с a = FooBar(foo_exp)
:
The Value of NewNode is foo_exp - When called inside the class FooBar
Но переменная a
заполняется значением типа None (В случае, если функция не возвращается ничего)
Может ли это рекурсия в этой функции? Есть ли еще какой-то фактор?
A = Тип None
, даже если return NewNode
закомментирован. Это заставляет меня полагать, что Python возвращает тип None
для функций без явного значения возврата.
Откуда взята переменная «Bar»? Это глобальный? –
Также откуда взялся «rootnode»? – zehnpaard
@AndrewMagee Bar является локальным для функции - предположим, что он всегда срабатывает хотя бы один раз. Я думаю, что это больше проблема с моей абстракцией моего примера кода, но я вижу, что в этом примере Bar никогда не обновляется. –