把任意 Python 对象变成模块

在看 django-allauth 源代码的时候发现了这么一段注释:

# Ugly? Guido recommends this himself ...
# http://mail.python.org/pipermail/python-ideas/2012-May/014969.html

相关代码的作用是把一个 Python 对象变成系统模块,于是使用者可以将其作为模块来引用。举个简单的例子:

import sys

def f():
    # do sth here
    pass

sys.modules['f'] = f

import f
f()

链接里 Guido 的回复更加详细。

0 comments