python和静默错误



我是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'
这个打印

:

开始

KeyError:"b"

有人知道为什么会发生这种情况吗?

  1. 您可以将变量存储在内存中。exit()和restart
  2. 在文本编辑器中编辑并使用%paste命令粘贴,以确保没有编辑问题
  3. 检查你用%whos
  4. 声明的变量

如果所有这些都失败,运行下面的代码。它将打印出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()

相关内容

最新更新