创建一个对象不起作用

时间:2016-12-17 15:45:04

标签: python object typeerror

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&#39 ;,' city'和' number'

我该怎么办才能收到此错误,以便我可以编辑对象?

1 个答案:

答案 0 :(得分:0)

必须使用6个参数调用

phonebook,而不是0.您调用phonebook(),这会导致代码中断。尝试用这样的东西打电话:

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

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

P.S。您在此网站上使用此类用户名

获得了很多帮助