Getting values from object oriented tkinter [duplicate]

Solution 1:

Ok this is a very common mistake. When you create your tk.Entry you do this:

self.email = tk.Entry(self).grid(column=1, row=4)

That creates the entry then immediately calls its .pack method. It stores whatever .pack returns (always None) to self.email. What you want to do is this:

self.email = tk.Entry(self)
self.email.grid(column=1, row=4)