Inheritance and super

Scenario: Web and database services share naming behavior but calculate health differently.

New words, in plain English

Inheritance models a genuine is-a relationship. Child instances pass parent type checks. Use super().__init__ when extending parent initialization.

Analogy: A Python program is like a clear set of instructions for a careful helper: names label things, indentation groups steps, and errors explain where the helper became confused.

A small, real example

class Service:
    def __init__(self, name): self.name = name
class WebService(Service):
    def __init__(self, name, url):
        super().__init__(name)
        self.url = url
Tip: Deep inheritance trees become fragile; keep them shallow.
Goal: Practice this idea in the py-oop-inheritance challenge at /labs/python. Fix the broken program, run it yourself, then use check to prove the real end state.