Python __init_;()缺少2个必需的位置参数

Python __init_;()缺少2个必需的位置参数,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,请帮帮我。在这个创建按钮的简单tkinter程序中,我提供了所有三个参数,但是屏幕上出现了关于位置参数的错误。对不起,我的英语很差。 from tkinter import * class Button: def __init__(self, row, column, frame): self.row = row self.column = column b = Button(frame).grid(row = self.row, column = self.colum

请帮帮我。在这个创建按钮的简单tkinter程序中,我提供了所有三个参数,但是屏幕上出现了关于位置参数的错误。对不起,我的英语很差。

from tkinter import *

class Button:
def __init__(self, row, column, frame):
    self.row = row
    self.column = column
    b = Button(frame).grid(row = self.row, column = self.column)

tk = Tk()
b1 = Button(row = 1, column = 1, frame = tk)
tk.mainloop()
错误是:

重新启动:C:\Users\vnira\Documents\python.projects\Flappy Bird\whiteboard.py
回溯(最近一次呼叫最后一次):
文件“C:\Users\vnira\Documents\python.projects\Flappy Bird\whiteboard.py”,第11行,在
b1=按钮(行=1,列=1,帧=tk)
文件“C:\Users\vnira\Documents\python.projects\Flappy Bird\whiteboard.py”,第7行,在init
按钮(框).grid(行=self.row,列=self.column)
TypeError:init()缺少两个必需的位置参数:“column”和“frame”


提前感谢
按钮
类的
初始化
中,您正在尝试使用
按钮
类的新实例:

b = Button(frame)
由于
按钮。\uuuu init\uuuu
接受3个参数,
行、列、帧
脚本失败。如果您确实通过了
,那么您将遇到递归问题,您将无限地创建
按钮
的新实例

编辑:正如评论和其他答案中指出的,
tkinter
有自己的
按钮
类,您正在覆盖该类,这就是为什么您应该尽量避免这样做

from tkinter import *

而只需在
按钮
类中的
初始化
中调用
按钮
并调用
按钮

,您正试图处理
按钮
类的新实例:

b = Button(frame)
from tkinter import *

class Buttons:
    def __init__(self, row, column, frame):
        self.row = row
        self.column = column
        b = Button(frame).grid(row = self.row, column = self.column)

tk = Tk()
b1 = Buttons(row = 1, column = 1, frame = tk)
tk.mainloop()
由于
按钮。\uuuu init\uuuu
接受3个参数,
行、列、帧
脚本失败。如果您确实通过了
,那么您将遇到递归问题,您将无限地创建
按钮
的新实例

编辑:正如评论和其他答案中指出的,
tkinter
有自己的
按钮
类,您正在覆盖该类,这就是为什么您应该尽量避免这样做

from tkinter import *
而只需导入tkinter
并调用
tkinter.Button

from tkinter import *

class Buttons:
    def __init__(self, row, column, frame):
        self.row = row
        self.column = column
        b = Button(frame).grid(row = self.row, column = self.column)

tk = Tk()
b1 = Buttons(row = 1, column = 1, frame = tk)
tk.mainloop()
当tkinter有一个类按钮时,您创建了一个类按钮。使用您自己的变量名可能会有所帮助:)我想它是在尝试递归地生成您创建的Button类的实例,而不是生成tkinter模块中Button类的实例


当tkinter有一个类按钮时,您创建了一个类按钮。使用您自己的变量名可能会有所帮助:)我想它是在尝试递归地生成您创建的Button类的实例,而不是生成tkinter模块中Button类的实例。

同样重要的是,通过创建名为
Button
的类,他们正在销毁同名的tkinter类。同样重要的是,通过创建名为
Button
的类,他们正在销毁同名的tkinter类。