ipython和无声错误

ipython和无声错误,python,runtime-error,ipython,silent,Python,Runtime Error,Ipython,Silent,我是python和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'

我是python和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'
本刊:

开始

键错误:“b”

有人知道为什么会这样吗

  • 您可以将变量存储在内存中<代码>退出()并重新启动
  • 在文本编辑器中编辑并使用
    %paste
    命令粘贴,以确保没有编辑问题
  • 使用
    %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()
    

    你能指定你正在使用的版本吗?我正在使用iPython 2.3.0,但出现了一个错误。