2015-06-08 2 views
0

Я новичок в python и ipython, а также обманывает ошибки: ошибки, которые не отображаются на консоли, если я не запустил ее в области видимости. Может быть, я что-то неправильно настроить, но проблема заключается в следующем:ipython и тихие ошибки

class test: 
    def __init__(self): 
    self.only_map = { 'a' : 1 } 
    def run (self): 
    print 'start' 
    self.only_map['c'] = self.only_map['a'] + self.only_map['b'] 
    print 'done' 

obj = test() 
obj.run() 

Печатается:

начало

Там нет ошибки, и кажется, что все в порядке. Но когда я запускаю его построчно, перехватывается ошибка:

self=obj 
print 'start' 
self.only_map['c'] = self.only_map['a'] + self.only_map['b'] 
print 'done' 

Эта гравюра:

начало

KeyError: «б»

Кто-нибудь есть какие-либо идеи, почему это происходит?

+0

Можете ли вы указать, какую версию вы используете? Я использую iPython 2.3.0, и я получаю сообщение об ошибке. –

ответ

0
  1. У вас могут быть переменные, хранящиеся в памяти. exit() и перезапустить
  2. Edit в текстовом редакторе и вставить с помощью команды %paste, чтобы убедиться, что у вас нет редактирования вопроса
  3. Проверьте, что вы объявили в качестве переменной с %whos

Если все остальное терпит неудачу, выполните приведенный ниже код. Он распечатает объекты self, чтобы вы могли убедиться, что у вас нет ошибок ...

class test: 
    def __init__(self): 
    self.only_map = { 'a' : 1 } 
    def run (self): 
    print 'start' 
    print self.__dict__ 
    self.only_map['c'] = self.only_map['a'] + self.only_map['b'] 
    print 'done' 

obj = test() 
obj.run() 
Смежные вопросы