Python TypeError:uu init_uuuuuuuu()为参数';获取了多个值;硕士';

Python TypeError:uu init_uuuuuuuu()为参数';获取了多个值;硕士';,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,目前,我正在尝试用Python构建GUI,尤其是在这一部分。每次我尝试运行代码时,它都会抛出错误TypeError:\uuuu init\uuuu()为参数“master”获取了多个值。我似乎找不到我在哪里传递了不止一个值,这让我抓狂。我尝试搜索错误,但其他人列出的修复程序我看不出如何使它们与此一起工作。任何指导都将不胜感激。请参见下面的代码示例: class Plotter(tk.Canvas): """Creates a canvas for use in a GUI Plo

目前,我正在尝试用Python构建GUI,尤其是在这一部分。每次我尝试运行代码时,它都会抛出错误
TypeError:\uuuu init\uuuu()为参数“master”获取了多个值
。我似乎找不到我在哪里传递了不止一个值,这让我抓狂。我尝试搜索错误,但其他人列出的修复程序我看不出如何使它们与此一起工作。任何指导都将不胜感激。请参见下面的代码示例:

class Plotter(tk.Canvas):
    """Creates a canvas for use in a GUI
    Plotter() -> Canvas
    """
    def __init__(self, master, **kwargs):
        super().__init__(self, master = master, **kwargs)
        self.bind("<Configure>", self.on_resize)
        self.height = self.winfo_reqheight()
        self.width = self.winfo_reqwidth()
        self.bg = 'white'
        self.relief = 'raised'

class AnimalDataPlotApp(object):
    """This is the top level class for the GUI, and is hence responsible for
    creating and maintaining instances of the above glasses
    """

    def __init__(self, master):
        """Initialises the window and creates the base window for the GUI.
        __init__() -> None
        """
        master.title('Animal Data Plot App')
        self._master = master
        self._text = tk.Text(master)
        self._text.pack
        menubar = tk.Menu(master)
        master.config(menu = menubar)
        filemenu = tk.Menu(menubar) #puts filemenu into the menubar
        menubar.add_cascade(label = 'File', menu = filemenu)
        filemenu.add_command(label = 'Open', command = self.open_file)

        #frame for canvas
        plotter_frame = tk.Frame(master, bg = 'red')
        plotter_frame.pack(side = tk.RIGHT, anchor = tk.NW, fill = tk.BOTH, expand = True)

        #frame for buttons
        button_frame = tk.Frame(master, bg = 'yellow')
        button_frame.pack(side=tk.TOP, anchor=tk.NW, ipadx=50, fill = tk.X)

        #Label on the top left
        left_label = tk.Label(button_frame, text='Animal Data Sets', bg='orange')
        left_label.pack(side=tk.TOP, anchor=tk.N, fill=tk.X)

        #second frame, for selection list
        selection_frame = tk.Frame(master, bg = 'blue')
        selection_frame.pack(side = tk.LEFT, anchor=tk.NW, fill = tk.BOTH, expand = True)

        #draw buttons in frame
        select = tk.Button(button_frame, text ='Select')
        select.pack(side=tk.TOP, anchor=tk.N)
        deselect = tk.Button(button_frame, text='Deselect')
        deselect.pack(side=tk.TOP, anchor=tk.N)

        self.selectionbox = SelectionBox(selection_frame)
        self.selectionbox.pack(side = tk.TOP, expand = True, fill=tk.BOTH)
        #self._selectionbox.show_animals(self._data)

        self.plotter = Plotter(plotter_frame)
        self.plotter.pack(side = tk.TOP, expand = True, fill=tk.BOTH)
类绘图仪(tk.Canvas):
“”“创建用于GUI的画布
绘图仪()->画布
"""
定义初始(自我、主控、**kwargs):
super()。\uuuuu init\uuuuuu(self,master=master,**kwargs)
self.bind(“,self.on_resize)
self.height=self.winfo_reqheight()
self.width=self.winfo_reqwidth()
self.bg='white'
self.relief='raised'
类AnimalDataPlotApp(对象):
“”“这是GUI的顶级类,因此负责
创建和维护上述眼镜的实例
"""
定义初始(自我,主):
“”“初始化窗口并为GUI创建基本窗口。
__init_uuz()->无
"""
主标题(“动物数据绘图应用程序”)
自我。_master=master
self.\u text=tk.text(主)
self.\u text.pack
菜单栏=传统菜单(主菜单)
master.config(menu=menubar)
filemenu=tk.Menu(菜单栏)#将filemenu放入菜单栏
menubar.add_级联(标签='File',菜单=文件菜单)
filemenu.add_命令(label='Open',command=self.Open_文件)
#帆布框
绘图仪\框架=传统框架(主框架,背景='红色')
绘图仪\u frame.pack(side=tk.RIGHT,anchor=tk.NW,fill=tk.BOTH,expand=True)
#按钮框
按钮\框架=传统框架(主框架,背景=黄色)
按钮+框架组件(侧面=顶部,锚定=顶部,ipadx=50,填充=顶部)
#标签在左上角
左标签=tk.label(按钮框,文本='Animal Data Sets',背景='orange')
左标签包装(侧=顶部,锚=底部,填充=底部)
#第二帧,用于选择列表
选择帧=传统帧(主帧,背景=蓝色)
选择_frame.pack(side=tk.LEFT,anchor=tk.NW,fill=tk.BOTH,expand=True)
#在框架中绘制按钮
select=tk.Button(按钮\框架,text='select')
选择.pack(side=tk.TOP,anchor=tk.N)
取消选择=tk.按钮(按钮\框架,text='deselect')
取消选择.pack(side=tk.TOP,anchor=tk.N)
self.selectionbox=selectionbox(选择框)
self.selectionbox.pack(side=tk.TOP,expand=True,fill=tk.BOTH)
#self.\u选择框。显示动物(self.\u数据)
self.plotter=绘图仪(绘图仪\机架)
self.plotter.pack(side=tk.TOP,expand=True,fill=tk.BOTH)
如果使用的是
super()
,则不需要显式指定
self


之所以出现此错误,是因为
self
被解释为
master
的参数。因此,这就像您在调用
\uuuuu init\uuuuu(master=self,master=master,**kwargs)
绘图仪中的下一行出现了问题-

调用父对象的
\uuuu init\uuuu
方法时,不需要传递
self
参数,这样做时,它将被视为父对象的
master
参数,然后当您尝试将
master
作为
master=master
传递时,会导致错误

你应该做的很简单-

super().__init__(master = master, **kwargs)
super().__init__(self, master = master, **kwargs)
super().__init__(master = master, **kwargs)