Python-日期时间不明原因的行为

时间:2018-05-11 13:45:56

标签: python datetime

我在python的词典中使用datetime时试图理解一种奇怪的行为。下面的代码是为了解释而写的。我预计变量ab的示例与self.xself.y的行为相同。

更清楚:在开头self.x=1self.y=2,稍后在self.x=self.y,在while循环内 - self.x正在增加1.正如预期的那样,只有self.x达到5的值,而self.y仍为2,如下面的运行结果所示。

但是我正在寻找一个解释为什么ab没有增加datetime.timedelta(days=3),只有b被编码为class TBD: def __init__(self): self.x = 1 self.y = 2 print(self.x, self.y) self.run_it() def run_it(self): self.x = self.y z = 0 a = {'start': datetime.datetime.now(), 'end': datetime.datetime.now() + datetime.timedelta(days=1)} b = a while z < 3: self.x += 1 z += 1 b['end'] = b['end'] + datetime.timedelta(days=3) print(b['end'], a['end']) print('x=', self.x, 'y=', self.y) 增加。

任何解释原因?

1 2
2018-05-15 16:26:58.101727 2018-05-15 16:26:58.101727
x= 3 y= 2
2018-05-18 16:26:58.101727 2018-05-18 16:26:58.101727
x= 4 y= 2
2018-05-21 16:26:58.101727 2018-05-21 16:26:58.101727
x= 5 y= 2

Process finished with exit code 0

运行结果:

        if button==3 then
            local hovering=hexGrid:containingHex(x,y) -- get hexagon at mouse position onclick
            if hovering then
                local data=hexes.getHexagon(hovering)
                data["text"]=data["text"]=="1" and "2" or "1" 
            end             
        end

0 个答案:

没有答案
相关问题