import sys class MyDict(dict): # override popitem() # override keys() # ... pass def patch_modules(): dict_type = dict for module in sys.modules.values(): if module is None: continue if '__builtins__' not in module.__dict__: # builtin modules have no __dict__ attribute continue builtins = module.__dict__['__builtins__'] if isinstance(builtins, dict_type): builtins['dict'] = MyDict else: # In the __main__ module, __builtins__ variable is a module builtins.dict = MyDict patch_modules() d = dict() print(type(d)) d2 = {} print(type(d2))