我有一些非常奇怪的行为,我只是不理解,因此无法解释,所以我希望这里有人可以帮助我。我注意到的第一件事是 ipdb 不再让我定义变量:
ipdb> what=5
ipdb> what
*** NameError: name 'what' is not defined
whatelse=6
过了一会儿,我发现 ipdb 在我的输入中返回了这个(再次运行代码之后):
dir()
ipdb> ['args', 'content_type', 'function', 'ipdb', 'item_code', 'kwargs', 'object_id', 'request', 'ud_dict', 'update_querydict', 'what', 'whatelse']
what=5
ipdb> what
5
ipdb> whatelse=7
ipdb> whatelse
ipdb> 6
whatelse
ipdb> 7
whatelse
ipdb> 6
whatelse
ipdb> 7
对我来说,这看起来就像我有两个交错的调试会话,我可以以某种奇怪的交替模式访问它们。我怎样才能摆脱它?
编辑: 杀死所有python进程并重新运行代码确实有帮助。现在一切都恢复正常了。但由于我只是不明白发生了什么,我会对所发生的事情的答案以及如何重现该行为非常感兴趣。