GH avatar Bite 85. Write an advanced property

After Bite 19. Write a simple property let's write a more advanced one.

In this Bite you are presented with a NinjaBelt class that keeps track of scores and Ninja Belts earned (a very real scenario). Some setup code has been provided like the _score and _last_earned_belt variables and the getter and setter methods that make up the property.

The goal is to write a property called score that does the following:

  1. Make sure it can only be assigned an integer,
  2. It can not be assigned a score lower than the current score,
  3. It checks in BELTS if a new belt was earned (for example going from 49 to 50 you earn the yellow belt), if so it stores it in self._last_earned_belt.
  4. For each new score print a message:
    • If a new badge was earned: Congrats, you earned {score} points obtaining the PyBites Ninja {rank} Belt
    • Else just the new score: Set new score to {score}

See the TESTS tab for more info. Good luck, have fun and keep calm and code in Python!

29 out of 30 users completed this Bite.
Will you be Pythonista #30 to crack this Bite?
It takes an average of ~51 minutes to solve this Bite (submissions 5-240 min).
Pythonistas rate this Bite 6.0 on a 1-10 difficulty scale.
» Up for a challenge? 💪

Login and get coding
We use Python 3.7