выход из вызова функции Python - PullRequest
1 голос
/ 10 сентября 2011

Как моя программа может завершить вызов функции? У меня есть рекурсивная функция, которая при выполнении условия вызывает себя.

def function( arg ):
    if (condition):
        ...
        return function( arg + 1 )

Я думаю о том, как это работает: если условие не выполняется, вызов функции будет прерван. В моей программе это, похоже, не так: условие нарушается, но программа переходит к оператору return (возможно, единственному оператору return, который она видит?).

Есть ли какой-нибудь метод exit (), который я мог бы добавить в предложение else?

Ответы [ 3 ]

3 голосов
/ 10 сентября 2011

Как указано, ваш код всегда будет просто возвращать None.Он проходит всю рекурсию и делает это до тех пор, пока условие не будет выполнено, а затем пропускает конец функции и возвращает None.

Например, попробуйте это:

def f(x):
    if (x<10):
        return f(x+1)
return x

и создайте из этого что-то полезное.

0 голосов
/ 10 сентября 2011

«Завершение функции» приводит к возврату None.Если вы видите что-то другое, то это вполне может быть удар по return, который вы видите, потому что это может быть неправильно введено.Используйте python -tt myscript.py, чтобы убедиться, что вы не смешали табуляцию и пробелы.

0 голосов
/ 10 сентября 2011

Если функция Python явно не return значение, она возвращает None. Это неявное return None аналогично return в C-подобных языках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...