У меня есть этот кусок кода, который вызывает себя:
def Dat_Function():
my_var = raw_input("Type \"a\" or \"b\": ")
if my_var != "a" and my_var != "b":
print "You didn't type \"a\" or \"b\". Try again."
print " "
Dat_Function()
else:
print my_var, "-from Dat_Function"
return my_var
def main():
print Dat_Function(), "-From main()"
main()
Теперь, если я введу только "а" или "б", все в порядке. Выход:
Type "a" or "b": a
a -from Dat_Function
a -From main()
Но если я наберу что-то еще, а затем "а" или "б", я получу это:
Type "a" or "b": purple
You didn't type "a" or "b". Try again.
Type "a" or "b": a
a -from Dat_Function
None -From main()
Я не знаю, почему Dat_Function()
возвращает None
, поскольку он должен возвращать только my_var
. Оператор print показывает, что my_var
является правильным значением, но функция по какой-то причине не возвращает это значение.