<p>函数有时返回None,因此无法从None中解压变量:</p>
<pre><code>In [1]: def f(i):
...: if i > 2:
...: return "foo","bar"
...:
In [2]: a,b = f(3)
In [3]: a,b
Out[3]: ('foo', 'bar')
In [4]: a,b = f(1)
-
TypeError Traceback (most recent call last)
<ipython-input-4-54f2476b15d0> in <module>()
> 1 a,b = f(1)
TypeError: 'NoneType' object is not iterable
</code></pre>
<p>开箱前检查返回值是否为无:</p>
<pre><code>def image_data(img):
img3 = masking (img)
if img3 is None:
print("target not found")
else:
val = find_center(img3)
if val:
cent, MOI = val
return cent[0],cent[1],MOI
else:
print('target not found')
</code></pre>
<p>或者使用<code>try/except</code>:</p>
<pre><code>def image_data(img):
img3 = masking (img)
if img3 is None:
print("target not found")
else:
try:
cent, MOI = find_center(img3)
return cent[0], cent[1], MOI
except TypeError:
print('target not found')
</code></pre>