【问题标题】:Error im receiving in Python (Tkinter)我在 Python 中收到错误(Tkinter)
【发布时间】:2016-05-20 18:06:33
【问题描述】:

目前正在尝试构建具有多个窗口的程序(主屏幕 -> 房东/客户部分 -> 日历/计算器等)

我现在是一个初学者,我经常遇到两个错误:

Tkinter 回调 Traceback 中的异常(最近一次调用最后一次):
文件 "C:\Users\HP\AppData\Local\Programs\Python\Python35-32\lib\idlelib\run.py", 第 119 行,主要 seq, request = rpc.request_queue.get(block=True, timeout=0.05) 文件 "C:\Users\HP\AppData\Local\Programs\Python\Python35-32\lib\queue.py", 第 172 行,在获取 raise Empty queue.Empty

还有另一个查询;我经常收到的一个错误是如何定义“Self”(“self is not defined”)

编辑

我的代码非常不正常——我认为查看我的代码可能会让你心脏病发作。运行代码时,我希望一次有 1 个屏幕,目前一开始出现 3 个屏幕,我假设这也是我使用错误的继承之类的东西

它太大了,放在这里,所以你可以在这里轻松查看代码

http://textuploader.com/525p5

说实话,任何帮助都将不胜感激。我第一次在 python 上做一些复杂的事情,比如一个具有日历、计算器等功能的工作程序

干杯 罗斯

【问题讨论】:

  • 发布您的代码。从错误消息中,我们真的帮不上忙。一个坏掉的代码比没有代码要好得多
  • 堆栈跟踪似乎表明异常发生在 IDLE 中,而不是您的代码中。您是否尝试过以独立方式运行您的程序(将其保存在 myapp.py 中,与 pythonw.exe 关联,双击)?

标签: python tkinter


【解决方案1】:
File "C:\Users\HP\AppData\Local\Programs\Python\Python35-32\lib\idlelib\run.py", 
line 119, in main seq, request = rpc.request_queue.get(block=True, timeout=0.05) 
File "C:\Users\HP\AppData\Local\Programs\Python\Python35-32\lib\queue.py", line 172,
in get raise Empty queue.Empty

这两行

request = rpc.request_queue.get(block=True, timeout=0.05)
raise Empty queue.Empty

建议您尝试从空队列中获取数据,并引发异常。处理这个问题的正确方法是将此代码放在 try..except 块中,捕获异常并相应地处理它。 Here 是关于这个问题的一个不错的教程。

try:
  ....
  request = rpc.request_queue.get(block=True, timeout=0.05) 
  ....
except Exception,e:
  # this will cath all exceptions derived from the exception class

关于您的第二个问题,我强烈建议您发布一个新问题,而不是将它们捆绑在一起。

但我会尝试给出一些建议:self 用于寻址类的实例,它是当前正在使用的对象。你不能“定义”自我,你可以在类实现中使用它来告诉 python 你的方法将用于特定实例,而不是全局范围。

class demo:
  def __init__(self):
    self.a = 5
  def foo(self):
    self.a = 6
  def global_foo():
    print 'global_foo'

【讨论】:

  • 当我输入'try'语句时,你建议“异常,e:”出现语法错误,我打算写什么?干杯
  • @Ross 你在except Exception:之后写过什么吗,比如print("Queue Empty")
  • @Ross 请阅读我指出的教程。您的问题没有快速解决方案,因为它是概念性的。您必须先了解发生了什么,然后再采取行动。
猜你喜欢
  • 2020-09-14
  • 1970-01-01
  • 2022-08-22
  • 2021-09-15
  • 2020-11-21
  • 2016-02-01
  • 2010-12-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多