В python, если функция не имеет оператора return, что он возвращает?

Учитывая эту примерную функцию:

def writeFile(listLine,fileName):
    '''put a list of str-line into a file named fileName'''
    with open(fileName,'a',encoding = 'utf-8') as f:
        for line in listLine:
            f.writelines(line+'\r\n')
    return True

Этот оператор return True делает что-то полезное?

Какая разница между ним и без него? Что произойдет, если не будет никакой функции возврата?

Ответы

Ответ 1

Если функция не указывает возвращаемое значение, она возвращает None.

В условном выражении if/then None имеет значение False. Поэтому теоретически вы можете проверить возвращаемое значение этой функции для успеха/отказа. Я говорю "теоретически", потому что для кода в этом вопросе функция не захватывает и не обрабатывает исключения и может потребовать дополнительного упрочения.

Ответ 2

Функция всегда возвращает None, если явно не указано return.

Ответ 3

Если у вас есть return True в конце функции, вы можете сказать следующее: a=writeFile(blah, blah)

Однако, поскольку он всегда будет True, он совершенно бессмыслен. Было бы лучше вернуть True, если файл был написан правильно и т.д.

Если вы явно ничего не возвращаете, значение будет None

Ответ 4

Не имеет смысла иметь оператор return самостоятельно, не приписываясь или не проверяя функциональность.

Python возвращает None, если ничего не возвращается. В вашем случае вы должны, вероятно, вернуться к истине, если файл открытия и запись будут успешными