为了账号安全,请及时绑定邮箱和手机立即绑定

__init__() 缺少 2 个必需的位置参数

__init__() 缺少 2 个必需的位置参数

三国纷争 2021-06-04 17:42:39
请帮帮我。在这个用于创建按钮的简单 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.pyTraceback(最近一次调用最后一次):文件“C:\Users\vnira\Documents\python.projects\Flappy Bird\whiteboard.py ", line 11, inb1 = Button(row = 1, column = 1, frame = tk)File "C:\Users\vnira\Documents\python.projects\Flappy Bird\whiteboard.py", line 7, in initButton(frame).grid(row = self.row, column = self.column)TypeError: init () 缺少 2 个必需的位置参数:'column' 和 'frame'提前致谢
查看完整描述

2 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

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 类时,您创建了一个 Button 类。使用您自己的变量名可能会有所帮助:) 我想它是试图递归地创建您创建的 Button 类的实例,而不是创建 tkinter 模块内的 Button 类的实例。


查看完整回答
反对 回复 2021-06-09
?
HUWWW

TA贡献1874条经验 获得超12个赞

__init__Button您要工作在一个新的实例类Button类:

b = Button(frame)

由于button.__init__需要 3 个参数,row, column, frame因此脚本失败。如果你没有传递rowcolumn也,你会遇到的递归问题,可能无限地创造新的实例Button

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

from tkinter import *

而只是import tkinter调用tkinter.Button.


查看完整回答
反对 回复 2021-06-09
  • 2 回答
  • 0 关注
  • 355 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号