我似乎很难理解参数传递和函数返回变量的概念。我正在研究一个涉及通过使用rest协议制作的python gui向机器人发出命令的项目。我目前正在编写故障安全代码,以禁止用户多次按下加载任务按钮并加载一堆相同的任务。下面是我的代码:函数返回函数的变量 - Python
demo = 'e1af13ba-4f38-11e7-9626-f44d3061db09'
mission = 1
def compMissionQueue():
getMissionQueue = robot.get_mission_queue()[1][0]
#print(getMissionQueue)
missionID = getMissionQueue['id']
#print(missionID)
missionGUID = robot.get_mission_GUID_from_queue(missionID)[1]['mission_id']
print(missionGUID)
if missionGUID != mission:
print('Mission successfully added to queue')
else:
print('Mission already in queue. Add again?')
def techDemo():
def loadMission():
#runDemo = robot.load_mission(demo)
#robot.continue_robot()
#robot.pause_robot()
#robot.delete_from_mission_queue(demo)
mission = demo
return mission
loadMission()
compMissionQueue()
print(mission)
return mission
功能techDemo通过按下按钮在GUI“触发”。我试图做的是使用compMissionQueue函数来检查一个任务是否已经加载到队列中,如果是的话,打印一些消息给用户。我试着检查'mission'的值是否通过在其上运行多个打印调用而返回,并且它不是从我可以告诉的任何地方返回mission = demo,它始终在我第一次设置任务时打印出'1'。如果你能指出我正确的方向,那将是非常感谢。谢谢!
首先你的代码不运行。它给出语法错误'compMissionQueue()'没有定义 –
那么,你从嵌套的loadMission函数返回一个值,但是你用返回的值做了什么?你需要把它分配给某些东西。 –
'techDemo'对'mission'一无所知,因为它是'loadMission'范围内的局部变量。你应该执行'mission = loadMission()',那么yu将能够从'techDemo'中返回它。 – DeepSpace