Python方法可以检查它是否用于赋值?

时间:2014-01-18 18:02:47

标签: python variable-assignment

假设我有一个可以返回值的方法,或者可以快速调用以查看我是否确实获得了我期望的返回值。

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只是为了正确看到我的数据结构。

这可能是一个有点迂腐的例子,但它在我中提出了一个问题,即一个方法是否可以判断它是用于分配值还是仅用于直接调用。

1 个答案:

答案 0 :(得分:2)

技术上你可以检查父框架的字节码或源代码。但这不仅令人难以置信的脆弱,黑客和复杂,它也是表明你做错了的绝对方式 TM 。只是不要这样做。编写方法始终只返回值,并在调用站点进行打印。或者,如果打印非常重要,请编写单独的方法进行打印。