【发布时间】:2022-10-22 05:03:07
【问题描述】:
我有一个 for 循环作为更大函数的一部分:
for table in tables_list:
if table["file"] == file:
table_name = table["table_name"]
break
log.info(f"table: {table_name}")
我收到一条错误消息,指出在分配 UnboundLocalError: local variable 'table_name' referenced before assignment" 之前正在引用该变量。不知道为什么会这样,因为在循环中满足条件然后循环停止时没有分配变量 table_name ?
【问题讨论】:
-
如果 table["file"] 永远不等于 file 会发生什么,变量 table_name 永远不会创建...
-
这是一个设计问题。当列表中没有表格或没有符合您条件的表格时,您希望发生什么?应该包括实现您的选择的代码。引发的异常可能已经是最好的解决方案。
标签: python reference variable-assignment