2012-05-11 :-(
_ 夜
2100 飯。キャベツとじゃがいものガレット 何か別のものが出来上がった。
_ [python][モジュール][動的][インスペクト][リフレクション][遅延][import][load][ロード]python モジュールを動的にロードする
( モジュールを動的にロードする. #Python - Qiita )
リフレクションとかなんとかどうのこうの。
lazyload.py
#!/usr/bin/python
# -*- coding:utf8 -*-
# モジュールを動的にロードする. #Python - Qiita
# http://qiita.com/items/837
def lazy_loader(name):
    """Loading function, class and module lazy."""
    try:
        mod = __import__(name)
    except:
        mod_list = name.split('.')
        mod = __import__('.'.join(mod_list[:-1]))
    components = name.split('.')
    for comp in components[1:]:
        mod = getattr(mod, comp)
    return mod
mymod.py
#!/usr/bin/python
# -*- coding:utf8 -*-
foobar = 0xDEADBEAF
def hoge():
    print "hoge"
class Moge(object):
    def __init__(self):
        print "moge"
lazyload0.py
#!/usr/bin/python
# -*- coding:utf8 -*-
import lazyload
def main():
    mod = lazyload.lazy_loader('os.path')
    print mod.abspath('./')
    mod = lazyload.lazy_loader('mymod')
    mod.hoge()
    print "0x%X" % (mod.foobar)
    moge = mod.Moge()
main()
% python lazyload0.py
/home/rin/work/lang/python    <= mod.abspath('./')
hoge                          <= mod.hoge()
0xDEADBEAF                    <= mod.foobar
moge                          <= mod.Moge()
[ツッコミを入れる]








