2015-04-24 31 views
0

我試圖通過if語句啓動部分函數,​​但無法使其工作。試圖通過if語句啓動部分函數

下面的代碼導致了一個問題:

class chrono: 
    def stop_chrono_gauche(chrono, event): 
     chrono.Stop() 

    def stop_chrono_droit(chrono, event): 
     chrono.Stop() 

[...] 

if(GPIO.input(17) ==1): 
    partial(stop_chrono_gauche, (sw)) 

if(GPIO.input(21) ==1): 
    partial(stop_chrono_droit, (sv)) 

有誰知道我能做到這一點?

+0

你有追溯嗎?或者哪個是錯誤? – lapinkoira

+0

我沒有任何錯誤,但功能沒有被啓動 –

+1

只是創建一個部分功能並且不做任何事情並不是很有用。你必須將它存儲在某個地方,然後在某個時候調用它來獲得任何效果。 (好吧,你也可以立即調用它,但是在那個時候,沒有理由使用partial;你可以直接調用這個函數。) – abarnert

回答

1

函數沒有被調用,因爲你永遠不會調用它;你只需創建一個局部函數,然後不做任何事情。

如果您只想在if聲明中調用stop_chrono_gauche,只需調用它即可,而不使用partial

如果您想創建partial函數並將其存儲在稍後調用的某個位置,那麼您必須將其存儲在某處並稍後調用它。

+0

功能在一個類中,所以我不能稱它們爲 –

+0

@ Mranth0ny62你需要給它們打電話嗎? –

+0

是,GPIO連接到傳感器,我希望計時器在交叉時停止 –