をエミュレートする関数を構築したいと思います from package_name import *
。この質問は、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')
何も起こりません。どうすればこれを修正できますか?