Here is a list of information you can refer to: Object-Oriented Software Construction, Second Edition, written by Bertrand Meyer The Pragmatic Programmer: From Journeyman to Master, by Andrew Hunt and David Thomas published by Addison-Wesley, 2000. PEP-316: Programming by Contract for Python (https://www.python.org/dev/peps/pep-0316/) REAL 01: The Most Diabolical Python Antipattern: https://realpython.com/blog/python/the-most-diabolical-python-antipattern/ PEP-3134: Exception Chaining and Embedded Tracebacks (https://www.python.org/dev/peps/pep-3134/) Idiomatic Python: EAFP versus LBYL (https://blogs.msdn.microsoft.com/pythonengineering/2016/06/29/idiomatic-python-eafp-versus-lbyl/) Composition vs. Inheritance: How to Choose? ...