2013-04-04 3 views
2

Есть ли какой-либо вред, если мы используем много позиций возврата в функции python? Предположим, если я хочу вернуть функцию, если значение не равно 3, а значение не равно (Только сценарий). Так что это может быть сделано во многих отношениях, какЧисло возвращаемых значений в функции

def return_value(value): 
if value != 3: 
    return None 
if value is not None: 
    return None 
if value != 'string': 
    return None 

или это можно сделать так:

def return_value(value): 
if value != 3 or value is not None or value !='string': 
    return None 

Опять же, я хотел бы использовать второй способ написания кода только, но только для сомневаюсь, что я прошу, чтобы много возвращений каким-то образом влияли на выполнение функции или нет?

+0

Нет, это было бы в данном случае не – jamylak

+0

, который был только сценарий, Можете ли вы объяснить, давая свой сценарий, если он затрагивает. –

+5

Не беспокойтесь, напишите читаемый код. Ваш код будет медленным, если он неэффективен, а не на основе его структуры. – jamylak

ответ

5

Нет, нет никакого вреда в наличии большого количества return.

При этом я бы в этом случае определенно пошел со второй версией. Первый труднее читать и медленнее (хотя оптимизация скорости без эталона всегда преждевременна). Это не многие return s, которые делают его ниже, хотя, но многие if s.

4

Это очень интересный сценарий, который вы использовали выше, но концептуально нет проблемы с несколькими точками возврата в функции.

В реальном сценарии вполне вероятно, что ваши условия тестирования будут логически схожими, и группировка их вместе, как и в вашем втором примере, будет иметь логический смысл и упростит чтение кода.

Приветствия