We have come to the end of this chapter. So, what is it that we achieved here? Let's have a look at all the key things that we learned from the chapter.
We learned how to structure programs using the MVC architecture.
We took a peek at the versatility and power of the Tkinter Canvas widget. This included a tour through the basic usage of the canvas coordinates, object IDs, and tags.
We discussed how to handle complexity by implementing programs in a modular structure. We achieved this modularity by breaking down the code into several smaller files. We handled the entire configuration from a single file and all the errors in another file.
We explored how to extend Python's built-in error class to define a custom error and exceptions. We also had a look at how we can extend Python's built-in data types, as in the case of the Model class, which directly extended...