我似乎很難理解參數傳遞和函數返回變量的概念。我正在研究一個涉及通過使用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