我想知道是否有人能想出一种方法来检查一个函数是否需要在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)
身体的第二行import this说明了一切:"显性比隐性更好".在这种情况下,如果提供可选参数,代码将更加明显(因此更容易理解),更简单,更快速,更安全.将它保存为一个单独的参数,其名称类似于wait.
虽然有困难你可以神奇地实现它,它将是讨厌的代码,容易在新版本的Python中打破并且不明显.避开那条路线; 它存在着疯狂的道路.
| 归档时间: |
|
| 查看次数: |
1045 次 |
| 最近记录: |