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"
解决方案
我想知道将每个函数的值分配给一个变量然后比较变量是否更好。
这取决于情况,真的。在您的情况下,由于您多次调用该函数,您可以通过只调用一次函数并将返回值分配给变量来节省资源。这样,您就不必重复调用该函数并重新计算它的返回值。
推荐阅读
- database - 选择查询具有相同类型值的多个列
- php - 如何从混合字符串中仅获得年份?(php)
- apache-spark - 失败的火花执行器是否值得关注?
- macos - ImportError:无法导入名称 py31compat
- java - 为什么我的游戏没有改变玩家回合?
- netsuite - SS2.0:调试 Map/Reduce
- json - Angular/Typescript 为了使用 json webservice,我需要创建所有返回的类?
- android - 是否可以通过 espresso 测试来模拟通话?
- r - 在 R 中的另一个变量中查找条件第一次出现之前的观察次数
- c++ - OpenGL 如何知道将哪个图像单元附加到制服上?