class Menu: hotdog = 10 hamburger = 10 def __init__(self) -> None: self.hotdog = 10 self.hamburger = 10 class SlotsMenu: __slots__ = ('hotdog', 'hamburger', 'cheeseburger') def __init__(self) -> None: self.hotdog = 10 self.hamburger = 10 def __get__(self, instance): print(f"DEBUG: looked up {instance}") if __name__ == '__main__': menu = Menu() print(f"cost of hamburger = {menu.hamburger}") menu.__dict__['hamburger'] = 1 print(f"new cost of hamburger = {menu.hamburger}") slotsmenu = SlotsMenu() print(f"cost of hamburger = {slotsmenu.hamburger}") slotsmenu.cheeseburger = 1 print(f"cost of cheeseburger: {slotsmenu.cheeseburger=}") #slotsmenu.__dict__['hamburger'] = 1 print(f"new cost of hamburger = {slotsmenu.hamburger}")