How can a method name an object that doesn't exist yet — and why does `self.x = xval` outlive the plain `x = xval` beside it?
Short drills on what this video just taught. Write the code, run the checks, and reveal the answer only if you are stuck.
The class header for Coordinate is already written, its body still holding nothing but a docstring. Add the constructor to that body. Keep the parameter names xval and yval, and store the two values on the object as attributes named x and y.
The class itself is this exercise's answer — there is no separate variable to assign.
The dunder constructor signature
Write def __init__(self, xval, yval): and record that self is the first parameter of every method, while each parameter after it is a value the caller supplies at creation.
self.x = xval against a bare x = xval
Write both versions of the initializer body, record what remains once __init__ returns in each case, and note that the attribute name need not match the parameter name.
The room blueprint with no rooms built yet
Reproduce the blueprint example, record that self.coffee_table names a future room's table while a built room uses living_room.coffee_table, and that one class yields many distinct instances.