Проверить, есть ли что-то «ожидающее» возвращаемого значения функции

Мне интересно, может ли кто-нибудь придумать способ проверить, должна ли функция возвращать значимое значение в Python. То есть, чтобы проверить , будет ли возвращаемое значение использоваться для чего-нибудь . Я предполагаю, что ответ отрицательный, и лучше реструктурировать мою программу. Рассматриваемая функция извлекает возвращаемые значения из сетевого сокета. Если возвращаемое значение не будет использоваться, я не хочу тратить ресурсы на получение результата.

Я уже пытался использовать трассировку для обнаружения вызывающей линии, но это не сработало. Вот пример того, что я имел в виду:

>>> def func():
...  print should_return()
...
>>> func()
False
>>> ret = func()
True

Функция «знает», что ей присваивается возвращаемое значение.

Вот мой текущий обходной путь:

>>> def func(**kwargs):
...   should_return = kwargs.pop('_wait', False)
...   print should_return
...
>>> func()
False
>>> ret = func(_wait=True)
True
9
задан Violet 27 February 2012 в 03:16
поделиться