为什么我的代码没有打印出任何东西?

2024-04-26 05:24:41 发布

您现在位置:Python中文网/ 问答频道 /正文

为什么当我按下单选按钮然后按下提交按钮时,我的代码不打印任何东西?例如,如果我按“Open Save”单选按钮,将条目留空,然后按submit,它将打印“test2”,但无论我做什么,它都不会打印任何内容。你知道吗

def Saves():
    global saveordelete
    saveordelete = 0
    global savedname
    def openthesave():
        saveordelete = 1
    def deletethesave():
        saveordelete = 2
    def opensave():
        if saveordelete == 1:
            openname = savedname.get() + ".txt"
            my_file = Path(openname)
            if my_file.is_file():
                print("tes1")
            else:
                print("test2")
        elif saveordelete == 2:
            openname = savedname.get() + ".txt"
            my_file = Path(openname)
            if my_file.is_file():
                print("test3")
            else:
                print("test4")
    root = Tk()    
    root.title("Saves")
    root.iconbitmap("morseicon.ico")
    root.resizable(0,0)
    Label(root, text="Name:").grid(row=0, column=0, sticky=W)
    savedname = Entry(root, width=20)
    savedname.grid(row=0, column=1)
    Button(root, text="Submit", width=10, command=opensave, bg="aqua").grid(row=3, column=8)
    Label(root, text="Choose kind:").grid(row=1, column=0, sticky=W)
    Radiobutton(root, text="Open save", height="1", command=openthesave, value=1).grid(row=2, column=0, sticky=W)
    Radiobutton(root, text="Delete save", height="1", command=deletethesave, value=2).grid(row=3, column=0, sticky=W) 
    root.mainloop()

Tags: textifmydefcolumnroot按钮grid
1条回答
网友
1楼 · 发布于 2024-04-26 05:24:41

saveordelete是函数openthesave()deletethesave()中的局部变量。它们不会更改Saves()中定义的全局saveordelete的值。在两个函数中都将其标记为global,或者(更好)使用类。你知道吗

相关问题 更多 >