![](/img/trans.png)
[英]UnboundLocalError: local variable 'truebomb' referenced before assignment
[英]unboundLocalError: local variable 'loopback' referenced before assignment
我的代码如下:
import openpyxl
from openpyxl import load_workbook
def process(input="Input-Migration Table.xlsx", output_dir="\output"):
dic_atn = {}
for row in sheet2.iter_rows(min_col=3,min_row=2,max_col=3,max_row=17):
for cel in row:
dic_atn[cel.value] = ""
for key in dic_atn:
for i in range(3,6):
if(sheet1.cell(row=i,column=1).value == key):
loopback = sheet1.cell(row=i,column=2).value
break
for col_config in range(2,11):
if(sheet3.cell(row=1,column=col_config).value == sheet2.cell(row=row,column=24).value + "-" + sheet2.cell(row=row,column=23).value):
for i in range(3,78):
if "<Loopback0>" in sheet3.cell(row=i,column=col_config).value:
new_loopback = sheet3.cell(row=i, column=col_config).value.replace("<Loopback0>",loopback)
process()
我从谷歌搜索,它说这个错误是由使用函数外的变量引起的,但在这里,变量“环回”被定义并在函数过程中使用,为什么我仍然收到这个错误?
赋值前的错误引用表明该变量在被调用之前尚未创建。
在您的情况下,这是因为仅在一组特定语句为真时才定义变量。
for i in range(3,6):
if(sheet1.cell(row=i,column=1).value == key):
loopback = sheet1.cell(row=i,column=2).value
break
如果您的 if 语句从未找到匹配项,则永远不会将环回创建为变量。 这会导致您在分配之前获得错误引用,因为它从未被分配过。
您可以在 if 语句之前单独定义变量,如果要确保变量始终具有引用,则使用默认值(或无)。
loopback = ''
如果这不是解决您问题的可行方法,您将需要处理 if 语句以确保每次运行应用程序时它都匹配。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.