Where Attributes Actually Live

class Robot:
    units_built = 0

    def __init__(self, model):
        self.model = model
        Robot.units_built += 1

r1 = Robot("A1")
r2 = Robot("B2")

print(r1.__dict__)
print('units_built' in r1.__dict__)
print(Robot.__dict__['units_built'])

What does this print?

A

{'model': 'A1'}, then False, then 0

B

{'model': 'A1'}, then False, then 2

C

{'model': 'A1', 'units_built': 2}, then True, then 2

D

{'model': 'A1'}, then True, then 2