Python3x未绑定本地错误
我已经回顾了类似问题的答案,并尝试了各种推荐的迭代,但没有任何运气。在“return pick.CalendarFrame(rundate1)”行中,我收到了这个错误“UnboundLocalError:分配前引用的局部变量“rundate1”。我的代码是Python3x未绑定本地错误,python,python-3.x,Python,Python 3.x,我已经回顾了类似问题的答案,并尝试了各种推荐的迭代,但没有任何运气。在“return pick.CalendarFrame(rundate1)”行中,我收到了这个错误“UnboundLocalError:分配前引用的局部变量“rundate1”。我的代码是 def GetCalendar(): os.system("Pick.py") def rundate1(): result = tkinter.messagebox.askyesno(title="Rundate", messag
def GetCalendar():
os.system("Pick.py")
def rundate1():
result = tkinter.messagebox.askyesno(title="Rundate", message="back 7 days?")
#result = tkinter.messagebox.askyesno()
if result == True:
rundate1 = date.today() - timedelta(7)
print("rundate 1 = ", rundate1)
return rundate1
else:
GetCalendar()
return pick.CalendarFrame(rundate1)
print("rundate 1 = ", rundate1)
return rundate1
rundate = rundate1()
print("rundate = ", rundate)
if语句的第一部分工作正常,我单击yes并获取返回数据。当点击“否”时,我的日历对话框弹出,我可以选择我的日期,但之后一切都崩溃了。应用程序“Pick.py”本身工作得很好。CalendarFrame的提交是
def submit():
start = self.result1.strftime("%m/%d/%Y")
end = self.result2.strftime("%m/%d/%Y")
rundate1 = start, end
return rundate1
print(rundate1)
非常感谢您为函数和本地日期变量使用名称
rundate1
。我相信如果你改变其中一个,你会解决你的问题(也可能使你的代码的意图更加明显)。我保留了def rundate1(),并将该def中对rundate1的引用更改为rundate。(与提交相同)我现在在execute“cur.execute(query,(rundate))中得到一个pyodbc.programmingError:(无效的参数类型=函数)正如@bdesham提到的,您不应该使用相同的名称,同样在else子句中,您使用的是rundate1
变量,它从来没有初始化过。我想我只是速度慢了一点。我完全不明白。还有什么地方可以帮我解决这个问题和其他问题吗?