函数返回值是应该分配给变量还是直接使用?

时间:2018-06-08 20:58:33

标签: python

我正在编写一个函数来使用HCSR04传感器计算物体的距离。传感器发出声音并等待返回。利用声音返回所需的时间,我可以计算出物体的距离。我的函数执行此任务并以厘米为单位返回距离。我使用返回的值判断我的机器人是否可以继续向前移动以及当物体阻挡其路径时转向的方向。

我使用如下函数:

def sides():
    if sen.dist_1() + sen.dist_5() < stg.safe_front_dist:
        print("Sides Checked - Going back.")
        return "back"

    elif sen.dist_1() > sen.dist_5():
        print("Sides Checked - Left.")
        return "left"

    elif sen.dist_1() < sen.dist_5():
        print("Sides Checked - Right.")
        return "right"

    else:
        print("Error checking sides.")
        return "error"

虽然这没有问题,但我想知道将每个函数的值分配给变量是否更好然后比较变量。这看起来像是:

def sides():
    dist_1 = sen.dist_1()
    dist_5 = sen.dist_5()

    if dist_1 + dist_5 < stg.safe_front_dist:
        print("Sides Checked - Going back.")
        return "back"

    elif dist_1 > dist_5:
        print("Sides Checked - Left.")
        return "left"

    elif dist_1 < dist_5:
        print("Sides Checked - Right.")
        return "right"

    else:
        print("Error checking sides.")
        return "error"

1 个答案:

答案 0 :(得分:0)

  

我想知道将每个函数的值分配给变量是否更好然后比较变量。

这取决于具体情况。在您的情况下,由于您正在调用函数许多次,您可以通过仅调用函数一次并将返回值赋给变量来节省资源。这样,您就可以避免重复调用该函数并重新计算它的返回值。