2016-09-22 7 views
-2

別のスクリプトからインポートするPython辞書があります。例えば、ここで別のスクリプトにあり、中にロードされた辞書です:Pythonディクショナリコメントアウトラインが機能しない

def Log(): 
    LogD = { 
      'Key': [0, 1, 2], 
      'Key2': [0, 1, 2], 
      'Key3': [0, 1, 2], # and so on for about 100 records 
      } 
    return LogD 

そして、ここではそれをロードする行です:

sys.path.append(r'C:/Whatever') 
import Log 
LogD = Log.Log() 

私は私の他のスクリプトにインポートすることで、いくつかのものを行います何でも。私はそれが削除される(無視されたい)場合は、辞書の行をコメントするモジュールもあります。そのモジュールは、ラインを検出し、そのような辞書内の行に#コメントを追加します。

def Log(): 
    LogD = { 
      'Key': [0, 1, 2], 
      #'Key2': [0, 1, 2], 
      'Key3': [0, 1, 2], # and so on for about 100 records 
      } 
    return LogD 

をしかし、私は辞書モジュールをリロードすると、コメント行は、まだ辞書に表示されます。私はモジュールとして辞書をロードせず、実行中のスクリプトにコメントを含めないとコメントがうまく動作しないのはなぜでしょうか。何か案は?

+1

まず、 'Key'と' Key2'グローバルはどこかにありますか?もしそうでなければ、彼らは本当に文字列であることを意味していますか?次に、どのようにモジュールをリロードしたのですか? 'Log()'関数を再度呼び出して新しいオブジェクトを返すようにしましたか? –

+5

dictのローカルコピーの代わりに 'pop( 'key2')'を使うのはなぜですか? –

+0

@MartijnPieters申し訳ありませんが文字列を追加した、ちょうど例だった。それをリロードするという観点から言えば、スクリプトが実行され、コメントが追加され、リロードする別のスクリプトを開くことができます。 –

答えて

0

誰もこれに答えなかったので、私はそれを理解しました。小道具は、PYCが正しく索引付けされていないとコメントした人に送られます。だから私は

os.remove(whatever.pyc) 

私の辞書を編集した後、すべてがうまくいきます。

関連する問題