AFAIK, a module&#39;s dict is readonly, so I don&#39;t believe a dict subclass will work there (I could be wrong) unless you hack up the module object from C. You can do it with descriptors on a ModuleType however, which should be plenty fast from Cython-land.<div>
<br></div><div><div><font face="&#39;courier new&#39;, monospace">In [16]: class AGetter(object):</font></div><div><font face="&#39;courier new&#39;, monospace">   ....:     def __get__(self, obj, cls):</font></div><div><font face="&#39;courier new&#39;, monospace">   ....:         return obj.a</font></div>
<div><font face="&#39;courier new&#39;, monospace">   ....:     def __set__(self, obj, val):</font></div><div><font face="&#39;courier new&#39;, monospace">   ....:         obj.a = val</font></div><div><font face="&#39;courier new&#39;, monospace">   ....:         </font></div>
<div><font face="&#39;courier new&#39;, monospace"><br></font></div><div><font face="&#39;courier new&#39;, monospace">In [17]: class MyMod(types.ModuleType):</font></div><div><font face="&#39;courier new&#39;, monospace">   ....:     b = AGetter()</font></div>
<div><font face="&#39;courier new&#39;, monospace">   ....:     </font></div><div><font face="&#39;courier new&#39;, monospace"><br></font></div><div><font face="&#39;courier new&#39;, monospace">In [18]: mmod = MyMod(&#39;my_mod&#39;)</font></div>
<div><font face="&#39;courier new&#39;, monospace"><br></font></div><div><font face="&#39;courier new&#39;, monospace">In [20]: mmod.__dict__[&#39;a&#39;] = 42</font></div><div><font face="&#39;courier new&#39;, monospace"><br>
</font></div><div><font face="&#39;courier new&#39;, monospace">In [21]: mmod.a</font></div><div><font face="&#39;courier new&#39;, monospace">Out[21]: 42</font></div><div><font face="&#39;courier new&#39;, monospace"><br>
</font></div><div><font face="&#39;courier new&#39;, monospace">In [22]: mmod.b</font></div><div><font face="&#39;courier new&#39;, monospace">Out[22]: 42</font></div><div><font face="&#39;courier new&#39;, monospace"><br>
</font></div><div><font face="&#39;courier new&#39;, monospace">In [23]: mmod.b = 87</font></div><div><font face="&#39;courier new&#39;, monospace"><br></font></div><div><font face="&#39;courier new&#39;, monospace">In [24]: mmod.a</font></div>
<div><font face="&#39;courier new&#39;, monospace">Out[24]: 87</font></div><br></div>