Допустим у меня есть функция, которую я написал.
Количество значений, которые она возвращает, растет по мере написания программы.
Есть ли предел у этого? Или же функция, которую я написал, может возвращать хоть сотни значений?
Python
Сколько значений может возвращать функция?
Лучше возвращать значения в контейнере и не переживать по поводу их количества.
фунция возвращает только одно значение. но, поскольку это значение может быть любого типа (массивы, объекты и проч.), фактически кол-во реально возвращаемых (упакованных в одно) значений не ограничено.
Он имел ввиду результирующий объект (структуру)
Функция возвращает одно значение, но, как было написано выше, возвращаемым значением может быть контейнер. В некоторых языках (по крайней мере в C#) есть возможность использовать модификатор параметров out . В этом случае функция возвращает не одно значение.
Как то так:
Пример
Объявление метода out используется тогда, когда необходимо, чтобы метод возвращал несколько значений. В следующем примере используется ключевое слово out для возврата трех переменных с помощью одного вызова метода. Обратите внимание, что третьему аргументу присвоено значение null. Это позволяет методам возвращать значения на выбор.
C#
class OutReturnExample
{
static void Method(out int i, out string s1, out string s2)
{
i = 44;
s1 = "I've been returned";
s2 = null;
}
static void Main()
{
int value;
string str1, str2;
Method(out value, out str1, out str2);
// value is now 44
// str1 is now "I've been returned"
// str2 is (still) null;
}
}
P.S. Только сейчас увидел, что категория вопроса "Python"
Как то так:
Пример
Объявление метода out используется тогда, когда необходимо, чтобы метод возвращал несколько значений. В следующем примере используется ключевое слово out для возврата трех переменных с помощью одного вызова метода. Обратите внимание, что третьему аргументу присвоено значение null. Это позволяет методам возвращать значения на выбор.
C#
class OutReturnExample
{
static void Method(out int i, out string s1, out string s2)
{
i = 44;
s1 = "I've been returned";
s2 = null;
}
static void Main()
{
int value;
string str1, str2;
Method(out value, out str1, out str2);
// value is now 44
// str1 is now "I've been returned"
// str2 is (still) null;
}
}
P.S. Только сейчас увидел, что категория вопроса "Python"
можно использовать yield..
Насколько я понимаю, функция может возвращать ссылку на объект, который может иметь любой тип и даже быть составным, например, кортежем словарей. Одновременно с этим, функция может что-то делать, подобно void-функции из других языков. Таким образом, функция в Питоне может сочетать в себе свойства void-функции и возвращать ссылку на объект любого типа.
Как раз, если думать питонически, то функция может вернуть один кортеж (tuple) с неограниченным числом элементов. И этот возвращаемый кортеж можно положить в другой кортеж и переменных. Например:
def f():
return 1, 2 // Или (1, 2)
a, b = f() // a = 1, b = 2
Из этой специфики вытекает самое короткое решение по перестановке переменных:
a, b = b, a
def f():
return 1, 2 // Или (1, 2)
a, b = f() // a = 1, b = 2
Из этой специфики вытекает самое короткое решение по перестановке переменных:
a, b = b, a
Похожие вопросы
- Вычислить значение функции заданной графически
- Join / split in python. Как использовать? Как применять? Значения и функции, пж.
- Задача: Посчитать и вычислить значение функции у=50/(х²-4) на отрезке от -4 до -7 с шагом -1
- арументы (изменяемых объектов) функций в 1с и Python
- Параметры функций python (я чайник)
- В чем разница между этими двумя вариантами написания кода функции?
- Написать функцию. Помогите пожалуйста!
- Функции и аргументы
- Смысл return в функциях
- Функции в Python, как понять?