def reflect(self, name):
<EOL>result = None<EOL>for scope in reversed(self.scopes):<EOL><INDENT>try:<EOL><INDENT>if isinstance(scope, type):<EOL><INDENT>result = structured.reflect_static_member(scope, name)<EOL><DEDENT>else:<EOL><INDENT>result = structured.reflect_runtime_member(scope, name)<EOL><DEDENT>if result is not None:<EOL><INDENT>return result<EOL><DEDENT><DEDENT>except (NotImplementedError, KeyError, AttributeError):<EOL><INDENT>continue<EOL><DEDENT><DEDENT>return protocol.AnyType<EOL>
Reflect 'name' starting with local scope all the way up to global.

        This method will attempt both static and runtime reflection. This is the
        recommended way of using reflection.

        Returns:
            Type of 'name', or protocol.AnyType.

        Caveat:
            The type of 'name' does not necessarily have to be an instance of
            Python's type - it depends on what the host application returns
            through the reflection API. For example, Rekall uses objects
            generated at runtime to simulate a native (C/C++) type system.