首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否有Python环境支持编辑并继续?

是否有Python环境支持编辑并继续?
EN

Stack Overflow用户
提问于 2011-08-15 12:05:51
回答 2查看 723关注 0票数 16

在Python中,有没有可能对当前正在调试的代码进行更改并继续执行,而不必重新启动所有内容?(例如,我可以在C#中使用这种方式。)

EN

回答 2

Stack Overflow用户

发布于 2011-08-15 12:37:09

使用pdb,您可以轻松获得解释器的全部功能,请使用

代码语言:javascript
复制
import pdb
pdb.set_trace()

从那里你可以定义和创建新的对象,重新定义现有的对象,修改和重新加载模块,等等。语法类似于gdb。如果您正在使用ipython,ipdb可能是更好的选择,或者您也可以使用ipython神奇函数%debug自动调用调试器。

票数 12
EN

Stack Overflow用户

发布于 2011-08-15 13:17:07

您可以为名称赋予新值,但仍可能有引用旧值的位置。在python shell中检查下面的会话:

代码语言:javascript
复制
>>> 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的值,当您重用名称foo时,这一点不会改变。

你是在请求编辑器支持吗?Python-mode in Emacs可以运行一个“低级的python进程”,你可以在使用它们的时候发送代码块到这个进程中。或者,您可以直接在Python shell中执行此操作,如上所示。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7061628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档