我想構建一個模擬from package_name import *
的函數。雖然this question通過修改globals()
來回答如何做到這一點。 globals()
,但是,是本地的功能是在所定義的模塊。在函數內的Python模塊中導入所有內容
例如,假設我定義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')
運行下面的代碼
什麼都不會發生。我怎樣才能解決這個問題?