On Wed, Sep 13, 2017 at 3:01 PM, Ivan Levkivskyi <levkivs...@gmail.com> wrote:
> @Guido > > One would have to introduce some kind of convention > > where you can write properties with a leading _ > > One doesn't even need the @property decorator in this case. > For example: > > def __getattr__(name): > g = globals() > name = '_' + name > if name in g: > return g[name]() > raise AttributeError(...) > > def _attr(): > "do something" > return actual_object > > One can even write a decorator that would change the name automatically > (but this will require a call at the end of module to unbind original > names). > The space for play is infinite. The question is what exactly is needed. > I would say that already basic customisation (like __getattr__) will be > enough. > IIUC, this will be actually a bit faster than setting __class__ since only > "customized" > attributes will be affected. > That last sentence is a key observation. Do we even know whether there are (non-toy) things that you can do *in principle* with __class__ assignment but which are too slow *in practice* to bother? And if yes, is __getattr__ fast enough? @property? IMO we're still looking for applications. -- --Guido van Rossum (python.org/~guido)
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com