2016-08-16 70 views
-1

我正在與pi2go lite機器人合作。這是我的代碼如何計算一個方法的調用次數?

import pi2go, time 
import sys 
import tty 
import termios 
import time 
pi2go.init() 

def stepCount(): 
    countL += 0 
    countR += 0 


speed = 60 
try: 
    pi2go.stepForward(60,16) 
    print stepCount 

finally: 
    pi2go.cleanup() 

的問題是,我想知道如何每次算「pi2go.stepForward(60,16)」一詞。

+2

這是你的整個代碼?因爲它是應該引發許多錯誤,因爲'countL'和'countR'沒有被定義。另外,事實上打印'stepCount'(或'stepCount()')將不會有用。 – DeepSpace

+0

此鏈接將解決問題,答案已經存在:http://stackoverflow.com/questions/21716940/is-there-a-way-to-track-the-number-of-times-a-function-is - 叫做 – d3r1ck

回答

0
counter = dict(ok=0, fail=0, all=0) 
try: 
    pi2go.stepForward(60,16) 
    counter['ok'] += 1 
except: 
    counter['fail'] += 1 
finally: 
    counter['all'] += 1 
    pi2go.cleanup() 
+0

謝謝!它像一個魅力! – OmamArmy

0

你非常接近。 stepCount是一個函數,所以你應該叫它 - 在最後加上括號。

speed = 60 
try: 
    pi2go.stepForward(60,16) 
    stepCount() 

你也沒有定義countLcountR。所以你需要事先定義這些。

但最好的辦法是將pi2go.stepForward(60,16)換成另一個函數。

像:

countL = 0 
countR = 0 

def stepForward(x, y): 
    countL += 1 
    countR += 1 
    pi2go.stepForward(x,y) 

然後你可以叫stepForward(60, 16)

+0

'stepCount'方法不返回一個值。 – niyasc

+0

考慮到OP發佈了所有代碼,調用'stepCount'將導致'NameError'。 – DeepSpace

+0

是的,我注意到有點晚了,正在更新我的答案。 – masnun

相關問題