Мне интересно, может ли кто-нибудь придумать способ проверить, должна ли функция возвращать значимое значение в 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