avatar Bite 24. ABC's and class inheritance

ABC's or Abstract Base Classes are great to enforce a common API for your subclasses.

You define one or more methods and/or properties as abstract in the base class, and if the subclass does not implement them it raises a TypeError. In this bite you will use this concept as follows:

  1. Define a Challenge base class that inherits from ABC (given), its constructor receives a number and a title attribute.
  2. On Challenge define an abstractmethod called verify and a property (< 3.3 it would be an abstractproperty) called pretty_title.
  3. Create the BlogChallenge and BiteChallenge classes which both inherit from Challenge. Note that they would raise a TypeError at this point, exactly what you want: enforcing the use of the abstract method/ property.
  4. BlogChallenge and BiteChallenge's constructors call the parent constructor (don't worry it's supercool, remember: we use Python3 so adjust your syntax), and both receive an extra argument in the constructor: merged_prs for BlogChallenge and result for BiteChallenge.
  5. Implement the required methods and properties, refer to the tests what they need to return.

Get coding, learn more about classes, and have fun!

Login and get coding
go back Advanced level
Bitecoin 4X

257 out of 262 users completed this Bite.
Will you be the 258th person to crack this Bite?
Resolution time: ~50 min. (avg. submissions of 5-240 min.)
Our community rates this Bite 4.93 on a 1-10 difficulty scale.
» Up for a challenge? 💪

Focus on this Bite hiding sidebars, turn on Focus Mode.

Ask for Help