假设我有一个可以返回值的方法,或者可以快速调用以查看我是否确实获得了我期望的返回值。
from pprint import pprint
from my_module import get_data
def quicktest():
#pseudocode here to illustrate what I want
if isUsedForAssignment:
return get_data()
else:
pprint(get_data())
这里的想法是我正在检查这个返回的数据以确保结构正确;但是,如果我不关心这一点,我宁愿分配价值。这样我就进入我的Python解释器并输入:
import thismodule as thism
thism.quicktest()
...而不是某种方式这样做,我不断导入pprint只是为了正确看到我的数据结构。
这可能是一个有点迂腐的例子,但它在我中提出了一个问题,即一个方法是否可以判断它是用于分配值还是仅用于直接调用。
答案 0 :(得分:2)
技术上你可以检查父框架的字节码或源代码。但这不仅令人难以置信的脆弱,黑客和复杂,它也是表明你做错了的绝对方式 TM 。只是不要这样做。编写方法始终只返回值,并在调用站点进行打印。或者,如果打印非常重要,请编写单独的方法进行打印。