【问题标题】:creating an object doesn't work创建对象不起作用
【发布时间】:2017-05-03 04:30:51
【问题描述】:
class phonebook:
    def __init__(self,first_name, last_name, street, postcode, city, number):

        root = tk.Tk()
        root.title('Book')

        menubar = tk.Menu(root)
        root.config(menu = menubar)
        menubar.add_command(label = 'Anlegen', command = self.create)
        menubar.add_command(label = 'Bearbeiten', command = self.change)
        menubar.add_command(label = 'Löschen')
        menubar.add_command(label = 'Sortieren')
        menubar.add_command(label = 'Suche')
        menubar.add_command(label = 'Hilfe')

        root.mainloop()

    def printing(self):
        account = (self.first_name.get(), self.last_name.get(), self.street.get(), self.postcode.get(), self.city.get(), self.number.get())
        accounts.append(account)
        for i in accounts:
            print(i)
    def change(self):
        account = accounts[0]
        account.first_name = 'test'
        self.printing

    def create(self):

        creation = tk.Toplevel()

        tk.Label(creation, text = 'Vorname').grid(row = 1, column = 0)
        tk.Label(creation, text = 'Nachname').grid(row = 2, column = 0)
        tk.Label(creation, text = 'Stadt').grid(row = 3, column = 0)
        tk.Label(creation, text = 'Postleitzahl').grid(row = 4, column = 0)
        tk.Label(creation, text = 'Straße').grid(row = 5, column = 0)
        tk.Label(creation, text = 'Telefonnummer').grid(row = 6, column = 0)


        self.first_name = tk.Entry(creation)
        self.last_name = tk.Entry(creation)
        self.city = tk.Entry(creation)
        self.postcode = tk.Entry(creation)
        self.street = tk.Entry(creation)
        self.number = tk.Entry(creation)

        a = tk.Button(creation, text = 'end', command = self.printing)

        self.first_name.grid(row = 1, column = 1)
        self.last_name.grid(row = 2, column = 1)
        self.city.grid(row = 3, column = 1)
        self.postcode.grid(row = 4, column = 1)
        self.street.grid(row = 5, column = 1)
        self.number.grid(row = 6, column = 1)
        a.grid(row = 7, column = 1)

phonebook()

正如您在我的代码中看到的,我正在尝试创建和编辑对象。问题是我无法创建一个真实的对象。当我想创建一个类 phonebook 的对象时,我得到了这个错误:

TypeError:__init__() 缺少 6 个必需的位置参数:“first_name”、“last_name”、“street”、“postcode”、“city”和“number”

我必须怎么做才能不出现此错误并可以编辑对象?

【问题讨论】:

  • 你有一个电话到phonebook()...你可以看到,这个电话没有任何参数,即使你的__init__ 需要6 个参数。所以它打破了。不错的用户名

标签: python object typeerror


【解决方案1】:

phonebook 必须用 6 个参数调用,而不是 0。你调用 phonebook(),这会导致你的代码中断。尝试用这样的方式调用:

phonebook("first_name", "last_name", "street", "post_code", "your_city", 123)

用适当的值代替我提供的值。

附:使用这样的用户名,您不会在此站点上获得太多帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-24
    • 2019-04-23
    • 2016-01-29
    • 1970-01-01
    相关资源
    最近更新 更多