[Tutor] OOP help needed
jf_byrnes at comcast.net
Wed Jul 27 14:25:18 EDT 2016
On 07/27/2016 03:12 AM, Peter Otten wrote:
> Jim Byrnes wrote:
>> OOP has always driven me crazy. I read the material and follow the
>> examples until I feel I understand them, but when I try to implement it
>> I end up with an error filled mess.
>> So I decided to give it another try. When I got to the chapter on
>> tkinter I decided to solve all the exercises using OOP even though the
>> book solutions did not use OOP. The first one went fine:
> No, it didn't. The Goodbye.quit() method is missing the self argument and
> uses the inexistent self.window attribute.
> You don't see these bugs when you run the script because there is a global
> quit()... let's say function... that is called instead of the method.
> You can put a print() into Goodbye.quit() to verify the above.
OK right. I ended up concentrating on exer2 when the problem was in
exer1. I should have known better than using quit() as a name.
>> import tkinter
>> class Goodbye:
>> def __init__(self):
>> self.frame = tkinter.Frame(window)
>> self.goodbye_button = tkinter.Button(self.frame, text='Goodbye',
>> command=lambda: quit() )
> The lambda is superfluous -- command=quit will already invoke the global
> quit(). But what you actually intended is achieved with command=self.quit.
> self.quit is called "bound method".
>> def quit():
> print("you'll never see this")
>> if __name__=='__main__':
>> window = tkinter.Tk()
>> myapp = Goodbye()
More information about the Tutor