это может быть большой питонической ересью, но я ищу синтаксис, который повторяет поведение кода ниже, без использования и return, и предложения yield в функции "sign" ( edit этот синтаксис на самом деле не производит следующие выходные данные.Вот пример того, как он должен себя вести:
a = sign(3)
a
>>> 1
a, b = sign(3, -5)
a
>>> 1
b
>>> -1
Я не против создать временную последовательность внутри функции, если она автоматически распаковывается при возврате.В идеале функция sign должна выглядеть примерно так:
def sign(*nums):
for num in nums:
yield sign_inner(num)
Но yield создает объект-генератор, и в случае одиночного ввода для его распаковки необходимо добавить запятую или скобки:
a, = sign(3)
a
>>> 1
тогда как без запятой:
a = sign(3)
a
>>> <generator object sign at 0x____________>