我在火車/航運模擬中得到了一段代碼,它給了我一些意想不到的結果。在我的代碼中,我將函數分配給lambda函數,將它們歸檔到堆棧中,然後彈出堆棧,依次完成每個函數。一些函數將更多的功能放在堆棧上。爲lambda分配函數分配調用函數,而不是指定的函數
我使用lambda表達式,所以當我將函數放在堆棧上時,它帶有我想要運行的參數。
這是我的問題。我有一個名爲TrainArrivesAtDock()
的函數,它應該創建另一個lambda並將其推入堆棧。但是,我創建的lambda不包含我要求的函數,它保存着TrainArrivesAtDock()
!
下面是代碼:
event = lambda: TrainUnloadComplete(crew)
insertEventAtCorrectTime(currentTime + trainQueue[0].remainingUnloadTime, event)
但在我的IDE檢查事件變量,我看到這個:<function TrainArrivesAtDock.<locals>.<lambda> at 0x0287BB28>
顯然,這不是正確的實現,但它是我的錯還是翻譯的?我正在使用PyTools for VS2012,我認爲這可能是問題,但在IDLE中運行此程序會產生相同的結果。
這應該是對您的問題的評論(或者對其進行更新)。 –