Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Объясните, пожалуйста, зачем в функции нужно писать return? I don’t understand it

ПрограммированиеPythonЯзыки программирования
Фёдор Заречный
Python Q
  · 24,2 K
Разрабатываю под Android в Wildberries (WB, WB Партнеры, WB Travel). Хотела стать...  · 8 сент 2021
Если функция в результате своей работы должна изменить или сгенерировать какое-то значение, то чаще всего лучше делать это через return. То есть, операции внутри функции по сути инкапсулированы в неё. Если ваша функция будет менять внутри себя что-то глобальное, вы можете нарваться на ошибки, вам будет сложно отслеживать изменения. Пример, когда функция меняет что-то глобально, если представить на местах комментов много разного кода, станет понятно, что уследить, что там происходит с а очень сложно. А если таких функций несколько сделать? =)
a = 0
# здесь ещё код, не связанный с а
a = 1

def changeA():
    a = 3

a = 4
# и здесь код, не связанный с а
changeA()
# снова код, не связанный с а
a = 5
# опять код не про а
# и вдруг вам надо а срочнааа
print(a)
Поэтому лучше всего в функции использовать а, но не менять её напрямую, а отдавать результат использования, который можно присвоить а (или даже b)), вызвав функцию. И пример ниже, как делать лучше.
Сложно отследить это в таком вот маленьком контексте, но когда речь о кодовой базе проекта, это играет довольно большую роль, в том числе облегчает чтение кода. В этом случае всё более очевидно становится. В общем, важно контролировать внешнее состояние. Особенно это пригодится при изучении многопоточки=)) если есть вопросы - задавайте, всё же мне кажется, что пример не прям наглядный получился, но я постаралась передать саму суть, для чего это нужно и почему хорошо именно так=) (Но естественно, есть и другие кейсы, это не гвоздями прибитое правило=) )
a = 0
# здесь ещё код, не связанный с а
a = 1

def changeA():
    return a + 3

a = 4
# и здесь код, не связанный с а
a = changeA()
# снова код, не связанный с а
a = 5
# опять код не про а
# и вдруг вам надо а срочнааа
print(a)
Стойте, а в питоне нет немутабельных переменных? оО
Математик и программист Python.  · 23 авг 2021

Return нужен, чтобы функция что-то возвращала. После return надо указать, что вы хотите возвращать. В одной функции может существовать только один return, иначе возвратит только первое значение return. Если не хотите, чтобы функция что-то возвращала, не пишите return!

1 эксперт не согласен
> В одной функции может существовать только один return. Неверно, и вводит во вредное заблуждение. Сколько угодно... Читать дальше
Инженер-программист.   · 19 авг 2021

Чтобы описать что должна вернуть ваша функция. Можете и не писать, если ничего возвращать не надо, т.е. используете функцию в качестве процедуры. Можно так же использовать для прерывания.

Переменные объявленные в функции имеют локальную видимость и при завершении исполнения функции становятся... Читать дальше
Самоучка на Пайтон 3. Дискорд: NordGamer#5580   · 18 окт 2021
Если вы напишете return, функция вернёт значение. Например # Эта функция вернёт значение def funkciya_s_return(a, b): c = a + b d = a - b e = a * b f = a / b return c + d + e + f # Эта функция напечатает значение def funkciya_s_print(a, b): print(funkciya_s_return(a, b)) # Печатается значение прошлой функции # Эта функция присвоит значение пере... Читать далее
Программист-любитель = )  · 20 авг 2021

Если хотите присвоить функции какое-то значение, то запишите его в return. Теперь вы можете прибавлять функцию, вставлять её в строку, выводите в консоль — у неё есть своё значение.

Лучший
Компьютеры и автомобили. YouTube: https://www.youtube.com/c/Коленвальщик/ Яндекс.Дзен: h...  · 19 авг 2021  · youtube.com/c/Коленвальщик/
Чтобы ваша самописная функция вернула результат, нужно написать return. Если вы не хотите, чтобы ваша функция возвращала результат - уберите return. # с return def my_func(a, b): return a + b # В этом случае, чтобы вывести результат на # экран, нужно использовать print(my_func(3, 2)) =================================== # без return def my_func(a, b):... Читать далее

Спасибо, с примером прям это круто)).