【发布时间】:2018-10-09 16:28:02
【问题描述】:
我有一个 Python 函数(在某处找到的卡尔曼滤波器中),我用大量打印调试了它,它似乎运行良好。
return语句前的打印显示值OK:
def step(self, z):
#----code----
#----alghoritm---
print("self.x that I'm returning:", self.x) # The printed value is [-163.53868766 -160.27005497] so it is OK
return self.x
print("UNREACHED CODE") # OK, it is not printed
调用这个的函数是:
print("I call step with", tvec[0][0], tvec[1][0]) # Values are OK
estimate = self.kalfilt_trasl_x_y.step((tvec[0][0], tvec[1][0])) # The returned value is none
print("returned value: ", estimate) # Is none
【问题讨论】:
-
如果返回前的打印显示
self.x的值不是None,则该函数不能返回None。请显示minimal reproducible example,因为正在发生其他事情。 -
你说你用
tvec[0][0], tvec[1][0]打电话给step。然而,step除了隐含的self外,只接受一个参数。所以,你应该打电话给some_object.step(some_argument)