2015-02-07 55 views
0

在主函数我有有没有办法在python中修改datetime对象?

def main(): 
    #... 
    def button_callback(button,a, byMouse,label): 
      #... 
      date = date - oneday 
      while(date.isoweekday()>5): date = date -oneday 
      #... 
    oneday = datetime.timedelta(1) 
    date = datetime.date.today() 

蟒蛇抱怨:赋值之前引用局部变量“日期”,预计。在主要的其他部分()我要注意不要进行转让,但修改,因此我有例如

def main(): 
    # other part of main() 
    def clear_callback(button,byMouse,aaa): 
     a_cats.clear() 

    a_cats = set(["GT","GR"]) 

这巨蟒高兴(它woudn't是如果我设置如a_cats = a_cats.clear( ))。

有没有办法修改日期时间对象而不明确使用“=”,这样我就可以避免使用全局变量?

回答

2

如果你使用的是Python 3.x中,你可以声明变量nonlocal

def main(): 
    def button_callback(button,a, byMouse,label): 
     nonlocal date # <-------------- 
     date = date - oneday 
     ... 

    oneday = datetime.timedelta(1) 
    date = datetime.date.today() 
相关问题