首页 > 解决方案 > 函数内部“名称未定义”

问题描述

我想创建一个倒计时时钟,我几乎做到了,但是如果我在下面运行此代码并按下“开始”按钮,我会收到错误消息: NameError: name 'be' is not defined. 即使我尝试放在global be那里它似乎也不起作用

import tkinter as tk
def set1():
    global be
    if be1 is not '':
        be = int(en.get())
    
def countdown():
    global be
    
    if be >= 0:
        mins, secs = divmod(be, 60)
        timer = '{:02d}:{:02d}'.format(mins, secs)
        
        label['text'] = timer
        root.after(1000, countdown)
        be -= 1

root = tk.Tk()

label = tk.Label(root, text = '00:00', font = 'Helvetica 25')
label.pack()

en = tk.Entry(root)
en.pack()
be1 = en.get()
tk.Button(root, text = 'set', height = 3, width = 20, command = lambda: set1()).pack()
tk.Button(root, text = 'go', height = 3, width = 20, command = lambda: countdown()).pack()

root.mainloop()

标签: pythonpython-3.xfunctiontkinter

解决方案


be在您的代码之上给出一个值,例如

be = 0

推荐阅读