【问题标题】:weird python nameError奇怪的python名称错误
【发布时间】:2020-09-08 12:27:36
【问题描述】:

当我尝试运行我的代码时,我收到一条错误消息:

Traceback (most recent call last):
  File "C:/Users/Vilho/PycharmProjects/BitlifeYritys1.0/main.py", line 37, in <module>
    kill = Button(screen1, text="End game", bg="green", command=end_game("end game button was pressed"), height=4, width=11)
  File "C:/Users/Vilho/PycharmProjects/BitlifeYritys1.0/main.py", line 9, in end_game
    main_screen.destroy()
NameError: name 'main_screen' is not defined

我不知道是什么导致了这个错误,因为我试图把全局变量放在任何我能做的地方。 其余代码在这里: https://shrib.com/?v=nc#VioletCrestedTuraco4wYoed9

【问题讨论】:

  • 这会给你一个不同的错误:None类型对象没有destroy方法
  • 请不要链接到其他网站上的代码。相反,edit 你的问题包括minimal reproducible example

标签: python tkinter global


【解决方案1】:

在调用 main_game 之前,您不会定义 main_screen:

def main_game():
    global main_screen
    main_screen = Tk()

但你永远不会调用这个函数。

但是,您确实调用了 end_game 函数。这意味着您正在对尚不存在的对象调用 destroy 方法:

main_screen.destroy()

结论:你要么需要确保 main_game 在 end_game 之前被调用,要么你需要创建一个空白窗口(这可能不是最好的主意)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-09
    • 1970-01-01
    • 2019-09-16
    • 2013-10-05
    • 1970-01-01
    • 2012-09-27
    • 2015-06-12
    相关资源
    最近更新 更多