Python Quest

Track 11 · Lesson 12 of 12

Designing with classes: inventory mini project

Decide which classes a program needs and what each is responsible for, define shared interfaces with abstract base classes, and build an inventory and ordering system in milestones.

About 90 minAdvanced5 exercises

You will be able to

  • Split a problem into small classes, each with one clear responsibility
  • Choose between inheritance, composition and plain data classes for each part of a design
  • Define an interface with abc.ABC and @abstractmethod, and implement it in subclasses
  • Build a multi-class inventory and ordering system step by step, keeping every object's data valid

Included with a Formula Quest membership

It has 5 graded exercises with feedback, hints and solutions. Python Quest is included in Formula Quest memberships that cover Python; membership and billing are managed on Formula Quest.

View Formula Quest memberships

Tracks 1 and 2, the first lesson of every track, the playground and the dataset library are free.