【问题标题】:Python function return none but it shouldn'tPython函数不返回,但不应该
【发布时间】: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)

标签: python nonetype


【解决方案1】:

终于找到问题了。 你是对的,问题出在代码的另一部分。 这个问题诞生了,因为我重用了一个用于其他人的代码而不接触。 ipdb 对逐行调试很有用。

【讨论】:

    猜你喜欢
    • 2018-10-11
    • 2013-07-15
    • 2016-04-16
    • 1970-01-01
    • 1970-01-01
    • 2022-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多