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()
[ツッコミを入れる]