gpt4 book ai didi

python - 类型错误 : super() argument 1 must be type, 不是 classobj

转载 作者:行者123 更新时间:2023-11-30 22:37:48 26 4
gpt4 key购买 nike

from Tkinter import *

class Application(Frame):
def __init__(self, master):
super(Application, self).__init__(master)
self.grid()
self.bttnClicks = 0
self.createWidgets()

def createWidgets(self):
self.bttn = Button(self)
self.bttn["text"] = "number of clicks"
self.bttn["command"] = self.upadteClicks
self.bttn.grid()


def upadteClicks(self):
self.bttnClicks += 1
self.bttn["text"] = "number of clicks " + str(self.bttnClicks)

root = Tk()
root.title("button that do something")
root.geometry("400x200")
app = Application(root)
root.mainloop()`

这就是错误:

super(Application, self).__init__(master)
TypeError: super() argument 1 must be type, not classobj

我做错了什么?该代码在 python 3.XX 中运行良好,但在 python 2.XX 中则不然。

最佳答案

Frame 不是新式类,但 super 需要新式类才能工作。在 python-3.x 中,一切都是新式类,super 将正常工作。

您需要在 python 2 中硬编码父类(super class)和方法:

Frame.__init__(self, master)

就像他们在 official documentation 中所做的那样.

关于python - 类型错误 : super() argument 1 must be type, 不是 classobj,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43767988/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com