2016-08-16 26 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

相关问题