2016-09-22 2 views
-2

У меня есть словарь python, который я импортирую из другого скрипта. Например вот словарь, который находится в другом сценарии и загруженная в:Python Dictionary Комментарий Out Line не работает

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

Почему бы вам просто не поп ('key2') 'вместо этого на локальную копию dict? –

+0

@MartijnPieters извините, добавили строки, просто был примером. С точки зрения перезагрузки, сценарий запускается, добавляет комментарий, затем закрывает открытие другого сценария, который перезагружает его. –

ответ

0

Так как никто не ответил на это, я понял это. Реквизит относится к тому, кто прокомментировал о том, что PYC не индексируется правильно. Поэтому я добавил

os.remove(whatever.pyc) 

после того, как я отредактировал свой словарь и все отлично работает.