sys.modules: importing twice returns the same object, which makes module-level state a natural singleton. Write get_counter() simulating this with a module-level _state dict holding 'count': each call increments and returns it. Then explain in the discussion why a re-import would NOT reset it (the cache), and what importlib.reload does.get_counter(); get_counter(); get_counter()
1 then 2 then 3
State persists at module level across calls — and across imports.
Mutating a module-level dict needs no global declaration.
_state['count'] += 1 then return it.