【发布时间】:2014-05-09 10:40:19
【问题描述】:
如果在被调用函数中发生某个事件,在 python 中是否有办法不返回调用函数。比如……
def acquire_image(sdkobject):
ret = sdkobject.PrepareAcquisition()
error_check(ret)
ret = sdkobject.StartAcquisition()
error_check(ret)
error_check 是一个检查返回码以查看 sdk 调用是否有错误的函数。如果这是一条错误消息,那么我不想返回获取和映像,而是转到另一个函数来重新初始化 sdk 并从头开始。有没有一种pythonic的方式来做到这一点?
【问题讨论】:
-
返回错误码,从调用函数调用重新初始化代码。
-
@thefourtheye 这是否意味着我必须在每个 sdk 函数调用中都有一个 if 语句?
-
sdkobject函数返回错误代码而不是引发异常的事实已经相当不符合 Python 风格。 -
@chepner sdkobject 只是原始 c++ sdk 的 python 包装器。它在输入和输出中反映了 c++。
-
good 包装器不会强制 Python 程序使用 C++ 编码约定。 (就此而言,为什么 C++ API 也不使用异常?)
标签: python function error-handling return