rocksportrocker rocksportrocker - 3 months ago 13
Python Question

Getting corresponding module from function

I want to modify a module xyz and its functions like that:

def modify(fun):
modulename = fun.__module__ # this is string. ok, but not enough

import xyz
modify(xzy.test)


My problem is how to access the namespace of
xzy
inside
modify
. Sometimes

globals()[fun.__module__]


works. But then I get problems if the definition
modify
is in a different file than the rest of
the code.

Answer

You want to get the module object from its name? Look it up in the sys.modules dictionary that contains all currently loaded modules:

import sys

def modify(func):
    module = sys.modules[func.__module__]
Comments