Top-rated recipes tagged "__dict__"http://code.activestate.com/recipes/tags/__dict__/top/2012-10-26T12:59:47-07:00ActiveState Code RecipesFind what class an attribute - ie, myObj.myAttr - comes from, and how it's defined (Python)
2012-10-26T12:59:47-07:00Paul Molodowitchhttp://code.activestate.com/recipes/users/4184064/http://code.activestate.com/recipes/578305-find-what-class-an-attribute-ie-myobjmyattr-comes-/
<p style="color: grey">
Python
recipe 578305
by <a href="/recipes/users/4184064/">Paul Molodowitch</a>
(<a href="/recipes/tags/attribute/">attribute</a>, <a href="/recipes/tags/attributes/">attributes</a>, <a href="/recipes/tags/class/">class</a>, <a href="/recipes/tags/debugging/">debugging</a>, <a href="/recipes/tags/inspection/">inspection</a>, <a href="/recipes/tags/source/">source</a>, <a href="/recipes/tags/__dict__/">__dict__</a>, <a href="/recipes/tags/__getattribute__/">__getattribute__</a>, <a href="/recipes/tags/__getattr__/">__getattr__</a>, <a href="/recipes/tags/__slots__/">__slots__</a>).
Revision 3.
</p>
<p>When inspecting new code (or when debugging), it can be handy to know exactly where a given attribute on an object or class comes from.</p>
<p>As a simple example, if you have a class MyClass, you might want to know where MyClass().myMethod is defined.</p>
<p>However, things can get tricky when things like __getattr__, __getattribute__, or even compiled objects come into play. That's where this function comes in. It returns what class a given attribute comes from, and what method was used to define it - ie, '__dict__' ('normal' definitions), '__slots__', '__getattr__', '__getattribute__', '(BUILTIN)'.</p>
<p>(Note - this function should't be relied on to be 100% accurate - rather, it's a best guess, for where to look to find it. It takes some pretty infrequent edge cases for it to be wrong, though...)</p>