首页 > 解决方案 > 函数返回值应该分配给变量还是直接使用?

问题描述

我正在编写一个函数来使用 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"

标签: python

解决方案


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

这取决于情况,真的。在您的情况下,由于您多次调用该函数您可以通过只调用一次函数并将返回值分配给变量来节省资源。这样,您就不必重复调用该函数并重新计算它的返回值。


推荐阅读