How to check to which module a function belongs? Like,
check_module(sqrt)
Would return math and so on, if at all.
Functions have a __module__ attribute:
>>> from math import sqrt
>>> sqrt.__module__
'math'
You can use the inspect.getmodule() function to get the actual module object for a given object:
>>> from inspect import getmodule
>>> getmodule(sqrt)
<module 'math' from '/Users/mj/Development/Library/buildout.python/python-3.4/lib/python3.4/lib-dynload/math.so'>
inspect.getmodule() works for more than just functions and classes; it'll go through some length to find a module for a given object, based on the metadata on that object.
Python 2.7.3) >>> getmodule(math.sqrt) returns <module 'math' (built-in)>math is a C-extension module, and it can either be compiled as a dynamically loaded library or made part of the Python binary itself. It looks like yours is compiled into the Python binary. built-in just means: no separate filename.math would also give the same output of course.