【发布时间】:2013-07-31 11:38:55
【问题描述】:
我想构造一个模拟from package_name import * 的函数。虽然this question 回答了如何通过修改globals() 来做到这一点。但是,globals() 对于定义函数的模块来说是本地的。
例如,假设我在first_package.py中定义了如下函数,
import imp
def load_contents(path):
"""Load everything from another package"""
module = imp.load_source('', path)
for k in dir(module):
if not '__' in k: # ignore __xxx__ private variables
globals()[k] = getattr(module, k)
然后在second_package.py中运行以下代码
import first_package
first_package.load_contents('third_package.py')
什么都不会发生。我该如何解决这个问题?
【问题讨论】:
标签: python