<div dir="ltr"><div><div><div>@Guido<br>> One would have to introduce some kind of convention<br>> where you can write properties with a leading _<div><br>One doesn't even need the @property decorator in this case.</div><div>For example:</div><div><br></div><div><div>def __getattr__(name):</div><div>    g = globals()</div><div>    name = '_' + name</div><div>    if name in g:</div><div>        return g[name]()</div>    raise AttributeError(...)</div><div><br></div><div>def _attr():</div><div>    "do something"</div><div>    return actual_object</div><br></div>One can even write a decorator that would change the name automatically<br></div>(but this will require a call at the end of module to unbind original names).</div><div>The space for play is infinite. The question is what exactly is needed.</div><div>I would say that already basic customisation (like __getattr__) will be enough.</div><div>IIUC, this will be actually a bit faster than setting __class__ since only "customized"</div><div>attributes will be affected.</div><div><br></div><div>--</div><div>Ivan</div><div><br></div><div><br></div></div>