有任何Python环境支持编辑和继续吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (50)

在Python中,是否可以对当前正在调试的代码进行更改并继续进行,而不必重新启动所有代码?(例如,我在C#中所能做到的方式。)

提问于
用户回答回答于

您可以为名称提供新的值,但是仍然可能有引用旧值的位置。在python shell中查看下面的会话:

>>> def foo(): print 'Foo'
...
>>> bar = foo
>>>
>>> foo()
Foo
>>> bar()
Foo
>>>
>>> def foo(): print 'Bar'
...
>>> foo()
Bar
>>> bar()
Foo
>>>
>>> def call(): foo()
...
>>> call()
Bar
>>>
>>>
>>> def foo(): print 'Foo reloaded!'
...
>>>
>>> foo()
Foo reloaded!
>>> bar()
Foo
>>>
>>> call()
Foo reloaded!
>>>

功能call指的是新的foo,但是bar被赋予旧的价值foo当您重用名称时,这一点也不会改变。

用户回答回答于

你有你指尖的解释器的全部力量pdb,使用

import pdb
pdb.set_trace()

在那里,您可以定义和创建新对象,重新定义现有对象,修改和重新加载模块等。语法很简单gdb...。如果你在使用IPython,ipdb可能是一个更好的选择,或者您可以使用IPython魔术函数自动调用调试器。

扫码关注云+社区

领取腾讯云代金券