On 20/11/2010 15:21, Nick Coghlan wrote: > On Sun, Nov 21, 2010 at 1:07 AM, michael.foord > <python-checkins at python.org> wrote: >> +Fetching attributes statically >> +------------------------------ >> + >> +Both :func:`getattr` and :func:`hasattr` can trigger code execution when >> +fetching or checking for the existence of attributes. Descriptors, like >> +properties, will be invoked and :meth:`__getattr__` and :meth:`__getattribute__` >> +may be called. >> + >> +For cases where you want passive introspection, like documentation tools, this >> +can be inconvenient. `getattr_static` has the same signature as :func:`getattr` >> +but avoids executing code when it fetches attributes. > This description feels a little strong to me - getattr_static still > executes all those things on the metaclass as it retrieves the > information it needs to do the "static" lookup. Leaving this original > description (which assumes metaclass=type) alone and adding a note > near the end of the section to say that metaclass code is still > executed might be an improvement. Can you give an example of code in a metaclass that may be executed by getattr_static? It's not that I don't believe you I just can't think of an example. Looking up the class and the mro are the only two examples I can think of (klass.__mro__ and instance.__class__ - and they are noted in the docs?) but aren't metaclass specific. Michael > Cheers, > Nick. > -- http://www.voidspace.org.uk/ READ CAREFULLY. By accepting and reading this email you agree, on behalf of your employer, to release me from all obligations and waivers arising from any and all NON-NEGOTIATED agreements, licenses, terms-of-service, shrinkwrap, clickwrap, browsewrap, confidentiality, non-disclosure, non-compete and acceptable use policies (”BOGUS AGREEMENTS”) that I have entered into with your employer, its partners, licensors, agents and assigns, in perpetuity, without prejudice to my ongoing rights and privileges. You further represent that you have the authority to release me from any BOGUS AGREEMENTS on behalf of your employer.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4