Design and Guidance: Object-Oriented Programming in Python

Writing good object-oriented code is about more than just how to write the
syntax. Knowing when and when not to use it, as well as guiding principles
behind object-oriented design will help you write better code.

In this course, you’ll learn about:

  • The objected-oriented approach in Python vs other languages
  • Cases in which you shouldn’t use classes in Python
  • Alternatives to inheritance in structuring your code
  • The SOLID principles for improving your code

SOLID is an acronym for five principles that you should use when thinking about
object-oriented code. The principles are:

  • The Single-Responsibility Principle (SRP)
  • The Open-Closed Principle (OCP)
  • The Liskov Substitution Principle (LSP)
  • The Interface Segregation Principle (ISP)
  • The Dependency Inversion Principle (DIP)

This course is the third in a three-part series. Part one is an introduction
to class syntax, where you learn how to write a class and use its attributes and
methods. Part two is about inheritance and class internals.


[ Improve Your Python With 🐍 Python Tricks 💌 – Get a short & sweet Python Trick delivered to your inbox every couple of days. >> Click here to learn more and see examples ]

Related Articles

Open Source Databases

We had a very fun and engaging chat with Matt Yonkovit who is the Chief Experience Officer at Percona, a service provider for open source databases like MySQL, PostgreSQL, MariaDB, and RocksDB. Matt has worked as a database architect for 10 years before transitioning into consulting roles at both MySQL and Sun Microsystems. In total, he’s been working with databases and open source for nearly 25 years.

PyMC Open Source Development

In this episode of Open Source Directions, we were joined by Thomas Wiecki once again who talked about the work being done with PyMC. PyMC3 is a Python package for Bayesian statistical modeling and Probabilistic Machine Learning focusing on advanced Markov chain Monte Carlo (MCMC) and variational inference (VI) algorithms. Its flexibility and extensibility make it applicable to a large suite of problems.

Julia Open Source Development

In this episode of Open Source Directions we were joined by Jeff Bezanson and Katie Hyatt who talk about the work they have been doing with Julia. Julia is a programming language that was designed from the beginning for high performance. It programs compile to native code for multiple platforms via LLVM. Julia is dynamically typed, feels like a scripting language, and has good support for interactive use.