Python importテクニック(発展版)
はじめに
前回のPython importテクニック見てて、
「ひょっとしたらこんなアホなimportできるんじゃね」
とか思ったので試してみる。
やったこと
前回importについて
「他の文と同じで、特別扱いしない」
という主旨の発言をした。
ということは、実行時にimportするライブラリが決まってなくてもいい筈だ。という訳でこんなの書いてみた
import sys name = sys.argv[1] print name exec("import {0}".format(name)) exec("print dir({0})".format(name))
引数でimportするライブラリを決める。
何 そ れ き も い
動かす。
python main.py re
結果。
re ['DEBUG', 'DOTALL', 'I', 'IGNORECASE', 'L', 'LOCALE', 'M', 'MULTILINE', 'S', 'Scanner', 'T', 'TEMPLATE', 'U', 'UNICODE', 'VERBOSE', 'X', '_MAXCACHE', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__version__', '_alphanum', '_cache', '_cache_repl', '_compile', '_compile_repl', '_expand', '_pattern_type', '_pickle', '_subx', 'compile', 'copy_reg', 'error', 'escape', 'findall', 'finditer', 'match', 'purge', 'search', 'split', 'sre_compile', 'sre_parse', 'sub', 'subn', 'sys', 'template']
なんか動いてる。
滅 茶 苦 茶 き も い