Nascent_Notes、素敵なスクリプトです! uuロード(コマンド 3) とロードされたモジュールのリストの出力 (コマンド 2)を試みましたが、どちらも正常に動作しているようです。
ただし、「モジュールを参照」(コマンド 4) しようとすると、次のエラーが表示されます。
HlpWiz>>> 4
What module do you want to look more into?: uu
*An error occurred - probably because the module isn't loaded or is misspelled*
実行してみてください
#!/usr/bin/env python
import sys
__import__('uu')
print(sys.modules['uu'])
print(dir(uu))
を取得する必要がありますNameError: name 'uu' is not defined。
したがって__import__、モジュールは正常にインポートされますが、グローバル名前空間にuuは追加されないようです。変数 name でモジュールにアクセスすることはできません。ただし、次の方法でアクセスできます。uuuuuusys.modules
したがって、変更
var_mod = input("What module do you want to look more into?: ")
print "\n attempting to browse... please wait!"
time.sleep(2)
browse_mod(zlib = var_mod)
に
var_mod = raw_input("What module do you want to look more into?: ")
print "\n attempting to browse... please wait!"
time.sleep(2)
browse_mod(zlib = sys.modules[var_mod])
raw_input使用するよりもはるかに安全であるだけでなくinput(ユーザーは予期しない/悪意のあるコマンドを実行できません)、ここで必要なことも実行raw_inputします。
マイナーな注意点として、変更することもできます
i = 1
for line in sample:
print i, line
i = i + 1
よりpythonicに
for i,line in enumerate(sample):
print i+1, line
編集:
sys.modules は dict (ディクショナリの略) です。dict は電話帳のようなものです。名前 (「キー」として知られています) を指定すると、電話番号 (より一般的には「値」) が返されます。
sys.modules の場合、キーはモジュール名 (文字列) です。値はモジュール オブジェクトそのものです。
ブラケット表記を使用して辞書内の値にアクセスします。単なるuu文字列です
sys.modules['uu'] が、モジュールですuu。
ここで dict の全文を読むことができます: http://docs.python.org/tutorial/datastructures.html#dictionaries