__init__() 中的类型错误,意外参数 python
TypeError in __init__(), unexpected argument python
我有以下代码:
from tkinter import *
class Button:
def __init__(self, master):
frame = Frame( master )
frame.pack()
self.printButton = Button(frame, text = "Print Message", command=self.printMessage)
self.printButton.pack(side = LEFT)
self.quitButton = Button(frame, text = "Quit", command = frame.quit)
self.quitButton.pack(side = LEFT)
def printMessage(self):
print(" WORKING!! " )
root = Tk()
b = Button(root)
root.mainloop()
这似乎并没有错......但是当我 运行 它时,终端说:
Traceback (most recent call last):
File "class.py", line 23, in <module>
b = Button(root)
File "class.py", line 10, in __init__
self.printButton = Button(frame, text = "Print Message", command=self.printMessage)
TypeError: __init__() got an unexpected keyword argument 'command'
我根据 tkinter 教程编写了所有这些代码。在本教程中,代码运行良好。任何帮助,将不胜感激。提前致谢!
Tkinter 已经有一个 Button
class,当您创建 class 时,您现在已经覆盖了名为 Button
的 tkinter class。所以,当你尝试像这样创建一个 tkinter 按钮时:
self.printButton = Button(frame, text = "Print Message", command=self.printMessage)
您现在正在引用 您的 按钮,因为您之前覆盖了 tkinter 按钮。因为你的按钮只接受一个参数而你给它三个,它会抛出一个错误。解决此问题的方法是将您的导入行更改为:
import tkinter as tk
然后使用 tk.*
引用任何 tkinter 函数。例如:
root = Tk()
会变成:
root = tk.Tk()
那么您的按钮将被 Button
引用,而 tkinter 按钮将被 tk.Button
引用。这样您就可以轻松区分两者。但是,您也可以将按钮命名为 myButton
之类的名称,这也可以解决问题。
我有以下代码:
from tkinter import *
class Button:
def __init__(self, master):
frame = Frame( master )
frame.pack()
self.printButton = Button(frame, text = "Print Message", command=self.printMessage)
self.printButton.pack(side = LEFT)
self.quitButton = Button(frame, text = "Quit", command = frame.quit)
self.quitButton.pack(side = LEFT)
def printMessage(self):
print(" WORKING!! " )
root = Tk()
b = Button(root)
root.mainloop()
这似乎并没有错......但是当我 运行 它时,终端说:
Traceback (most recent call last):
File "class.py", line 23, in <module>
b = Button(root)
File "class.py", line 10, in __init__
self.printButton = Button(frame, text = "Print Message", command=self.printMessage)
TypeError: __init__() got an unexpected keyword argument 'command'
我根据 tkinter 教程编写了所有这些代码。在本教程中,代码运行良好。任何帮助,将不胜感激。提前致谢!
Tkinter 已经有一个 Button
class,当您创建 class 时,您现在已经覆盖了名为 Button
的 tkinter class。所以,当你尝试像这样创建一个 tkinter 按钮时:
self.printButton = Button(frame, text = "Print Message", command=self.printMessage)
您现在正在引用 您的 按钮,因为您之前覆盖了 tkinter 按钮。因为你的按钮只接受一个参数而你给它三个,它会抛出一个错误。解决此问题的方法是将您的导入行更改为:
import tkinter as tk
然后使用 tk.*
引用任何 tkinter 函数。例如:
root = Tk()
会变成:
root = tk.Tk()
那么您的按钮将被 Button
引用,而 tkinter 按钮将被 tk.Button
引用。这样您就可以轻松区分两者。但是,您也可以将按钮命名为 myButton
之类的名称,这也可以解决问题。