我是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"
有人知道为什么会发生这种情况吗?
- 您可以将变量存储在内存中。
exit()
和restart - 在文本编辑器中编辑并使用
%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()