У меня есть функция, которая возвращает список. Когда я знаю, что количество элементов в списке, я могу сделать что-то вроде:возвращает переменные выходы в функции Python?
x,y,z=foo()
однако, количество элементов в списке может меняться. Я хотел бы сделать что-то вроде
x,y*=foo()
где х будет содержать первый элемент в возвращаемом списке и у * будет содержать оставшуюся часть, однако многие элементы там осталось. Очевидно, что этот синтаксис не поддерживается в Python. Есть ли для этого философская причина? Думаю ли я об этом неправильно?
благодарит заранее.
есть способ каким-то образом выяснить, какое количество желаемых выходов вместо подачи его в качестве входа в функцию распаковки? – reckoner
Без серьезных осложнений нет. Вам нужно будет проверить байт-код вызывающего абонента, который был бы неплохо пройденный здравый смысл. Воспроизведение ссылки, которую вы указали выше, в другом комментарии (где кто-то делает именно это): http://code.activestate.com/recipes/284742/. Выполнение чего-то подобного похоже на использование макросов в C для определения новых языковых конструкций: очень плохая идея. Лучше жить с несколькими бородавками на выбранном вами языке, чем составлять язык только с одним программистом в мире, который знает, что это значит. –