Inspect object at runtime
#!/usr/bin/env python
#
# [SNIPPET_NAME: Inspect object at runtime]
# [SNIPPET_CATEGORIES: inspect]
# [SNIPPET_DESCRIPTION: inspect the objects live at runtime. In .NET world it is called Reflection]
# [SNIPPET_AUTHOR: Manish Sinha <[email protected]>]
# [SNIPPET_DOCS: http://docs.python.org/library/inspect.html]
# [SNIPPET_LICENSE: GPL]
import inspect
# Define a sample class
class Example():
"""A method named sample"""
def sample(self):
pass
"""A method named foo and takes on argument"""
def foo(self, arg):
return "Testing";
"""A Field named a"""
a = "foo"
objInst= Example()
# Get a list of members of this instance including those from base object
memberList= inspect.getmembers(objInst)
for a in memberList:
print(a)
print(inspect.ismethod(objInst.sample)) # Returns True
print(inspect.isfunction(objInst.sample)) # Returns False. Method and Function are different
print(inspect.ismodule(objInst)) # Returns False
print(inspect.isclass(Example)) # Returns true