多次询问此错误,但我无法通过阅读来解决问题。 我的代码是:
def show_preference_list_isolated(isolated):
preference_list_isolated = {
(240, 323): [(164, 108),(178, 422),(152, 77),(126, 431)],
(396, 168): [(178, 422),(164, 108),(126, 431),(152, 77)],
(288, 235): [(178, 422),(126, 431),(152, 77),(164, 108)],
(88, 248): [(164, 108),(178, 422),(152, 77),(126, 431)],
}
if isolated in preference_list_isolated:
result = preference_list_isolated[isolated]
return result
def begin_matching(isolated):
preference_list_isolated = show_preference_list_isolated(isolated)
print(preference_list_isolated)
for relay in preference_list_isolated:
....
答案 0 :(得分:1)
在您的代码中,问题出在以下部分:
if isolated in preference_list_isolated:
result = preference_list_isolated[isolated]
return result
正如 Julien 指出的那样,isolated
中找不到preference_list_isolated
时会发生什么?此时它永远不会输入if loop
,并且由于永远不执行result = ...
,因此没有result
的赋值。因此,当您尝试返回result
时,它会抛出错误,因为此时根本不会定义它。
因此,要纠正这一点,您可以选择在None
之前为其分配占位符 if loop
,如下所示:
result = None
if isolated in preference_list_isolated:
result = preference_list_isolated[isolated]
return result
或者,将return
语句放在if loop
中,如下所示:
if isolated in preference_list_isolated:
result = preference_list_isolated[isolated]
return result