在python tkinter中更改变量的值

时间:2017-11-25 00:40:27

标签: python datetime tkinter

我刚刚开始使用python tkinter,我无法获得一个按钮来更改datetime中的日期。到目前为止,我有按钮更改值变量b,c和d但它不会更改日期。谢谢你的帮助。

from tkinter import *
import datetime
window = Tk()
b = int(1999)
c = int(2)
d = int(2)
today = datetime.date.today()
def changeVariable():
    global b, c, d
    b = int(1914)
    print("changed b")
    c = int(7)
    print("changed c")
    d = int(28)
    print("changed d")

def printVariable():
    global a
    print(a.days)

dog = datetime.date(b, c, d)
a = today - dog
button1 = Button(window, command = changeVariable)
button1.pack()
button2 = Button(window, command = printVariable)
button2.pack()

1 个答案:

答案 0 :(得分:1)

您的函数changeVariable 会更改变量bcd。在此之前计算它a。 Python,以及大多数编程语言的工作方式,当你说x = y时,除非特殊情况,否则不代表:

  

x始终等于y。 (通过引用传递)

而是:

  

将这个非常即时的值放到x(按值传递)

所以你应该放:

dog = datetime.date(b, c, d)
a = today - dog
printVariable

,以便a的值也得到更新。

您的最终printVariable应类似于:

def printVariable():
    global a
    dog = datetime.date(b, c, d)
    a = today - dog
    print(a.days)