我想知道是否有人可以想出一種方法來檢查函數是否需要在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