Why does `self.x = x` guarantee every Coordinate carries an x, when the plain parameter `x` vanishes the moment `__init__` returns?
Short drills on what this video just taught. Write the code, run the checks, and reveal the answer only if you are stuck.
Song is a brand new data type, but its body is empty so far. Put the implementer's hat on first: give Song an __init__ taking a title and a length in seconds, and store both of them as data attributes named title and seconds, so that every Song ever built is guaranteed to carry them.
Then swap hats and use the finished type: build the song "Blackbird", 138 seconds long, and assign that object itself to song.