Function attributes
Every function is a fully-fledged object and, as such, they have many attributes. Some of them are special and can be used in an introspective way to inspect the function object at runtime. The following script is an example that shows a part of them and how to display their value for an example function:
# func.attributes.py def multiplication(a, b=1): """Return a multiplied by b. """ return a * b special_attributes = [ "__doc__", "__name__", "__qualname__", "__module__", "__defaults__", "__code__", "__globals__", "__dict__", "__closure__", "__annotations__", "__kwdefaults__", ] for attribute in special_attributes: print(attribute, '->', getattr(multiplication, attribute))
I used the built-in getattr
function to get the value of those attributes. getattr(obj, attribute)
is equivalent to obj.attribute
and comes in handy when we need to get an attribute at runtime using its string name. Running this script yields:
$ python func.attributes.py __doc__...