我想知道是否有人可以想出一种方法来检查函数是否需要在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
Python中的所有函数总是返回。如果你没有明确返回,函数返回'None'。 – birryree 2012-02-27 02:43:18
Python函数不会总是返回。但是,如果它们返回,那么它们总是返回一个值,除非指定,否则为None。 – Arafangion 2012-02-27 02:47:00
我明白,但大多数情况下,返回'None'的函数相当于不返回任何内容。在这种情况下,我需要检查它是否应该返回“None”以外的任何内容。 – Violet 2012-02-27 02:48:19