Python子类化导致IDLE重新启动

时间:2016-09-05 14:57:41

标签: python class subclass python-idle

我在一个漫长而复杂的脚本中发现了这个问题,但是在调试时将其剥离到这个非常小的形式,这仍然会导致同样的问题:

from PyQt5.QtWidgets import(QMainWindow)

class Window(QMainWindow):
    pass

当我通过IDLE解释器导入此类时,请尝试使用

实例化该类
w = Window()

shell使用" ========== RESTART重新启动:Shell ==========="消息。

这些事情解决了这个问题:

  • 重写代码,使Window类没有超类:

    from PyQt5.QtWidgets import(QMainWindow)
    
    class Window:
        pass
    
  • 如果文件有"如果名称 ==' main':"则双击IDLE以外的代码。有条件的添加

这些事情解决问题:

  • 更改班级名称
  • 更改用作超级
  • 的类

关键是,当我回去尝试从旧脚本中导入/实例化类似的子类,这些脚在过去工作得很好并且有一段时间没有被触及,它们现在表现出完全相同的问题。

所以,据我所知,我有一个特定于IDLE的问题,它在尝试实例化任何子类时崩溃/重新启动解释器,并且在它之前不存在的地方自发地出现。

以前有人见过这样的事吗?

1 个答案:

答案 0 :(得分:0)

感谢您的帮助 - 据我所知,事实上tkinter和Qt之间存在冲突。重新安装我的Python环境似乎已经解决了这个问题!