2014-10-02 5 views
1

Что такое правильный способ использования данных из функций в Python скриптов?Использование функций: print vs return

Использование print, как:

var1 = 'This is var1' 

def func1(): 
    print(var1) 

func1() 

Или - с return:

var1 = 'This is var1' 

def func1(): 
    return var1 

print(func1()) 

Оба дают одинаковый результат:

$ ./func_var_print_return.py 
This is var1 
+1

Печать не возвращает значения из функции! В этом смысле ни ваш вопрос, ни ваш пример не имеют смысла! try 'print func1()' vs 'print func2()'. (где ваш второй func1 является func2!) Но, честно говоря, в вашем примере это не имеет особого значения, поскольку var1 является «глобальной» переменной и остается неизменным независимо от задействованных функций! –

+0

@DonQuestion спасибо за повтор. Это просто простой пример, поэтому, конечно, здесь нет ничего из IRL. – setevoy

ответ

2

Вы должны указать return значение, когда целью функции является получение значения. Это значит, что функции могут использовать другие функции. Например

def add(x,y): 
    return x + y 

def multiply(a,b): 
    product = 0 
    for i in range(b): 
     product = add(product, a) # Note I am calling the add function 
    return product 

Тестирование

>>> multiply(5,4) 
20 

Обратите внимание, что я использовал значение return из add в моей multiply функции. Если бы я только напечатал значение от add, я бы не смог этого сделать.

+0

Прекрасный пример, спасибо. – setevoy

2

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

1

Вы всегда должны попытаться вернуть значение.

Подумайте об модульных тестах -> Как бы вы подтвердили значение, если оно не возвращается? И, как упоминалось ранее «meto», если ваш код изменяется, вы все равно можете выполнять другие операции со значением.

Смежные вопросы