检查是否有"等待"函数返回值的内容

Vio*_*let 9 python

我想知道是否有人能想出一种方法来检查一个函数是否需要在Python中返回一个有意义的值.也就是说,检查返回值是否将用于任何事情.我猜测答案是否定的,重构我的程序流程会更好.有问题的函数从网络套接字中提取其返回值.如果不会使用返回值,我不想浪费获取结果的资源.

我已经尝试使用回溯来发现调用行,但这不起作用.这是我想到的一个例子:

>>> def func():
...  print should_return()
...
>>> func()
False
>>> ret = func()
True
Run Code Online (Sandbox Code Playgroud)

函数"知道"正在分配其返回值.

这是我目前的解决方法:

>>> def func(**kwargs):
...   should_return = kwargs.pop('_wait', False)
...   print should_return
...
>>> func()
False
>>> ret = func(_wait=True)
True
Run Code Online (Sandbox Code Playgroud)

Chr*_*gan 5

身体的第二行import this说明了一切:"显性比隐性更好".在这种情况下,如果提供可选参数,代码将更加明显(因此更容易理解),更简单,更快速,更安全.将它保存为一个单独的参数,其名称类似于wait.

虽然有困难你可以神奇地实现它,它将是讨厌的代码,容易在新版本的Python中打破并且不明显.避开那条路线; 它存在着疯狂的道路.