如何解决IPython奇怪的行为:变量名中的“通过”,“返回”或“提高”会终止函数/类定义
| 我一直在IPython Shell中研究SQLAlchemy ORM教程,直到必须在类定义中添加“ 0”的地步。奇怪的是,类定义在我输入后就终止了。 玩了一段时间后,我发现在类或函数定义中以pass
,return
或raise
开头的任何行,例如
def f(x):
returnfoo = None
终止IPython中的定义。在默认的python解释器中不会发生这种情况,因此这不是python问题。我以为这是IPython中的错误,但想确保它不仅仅是我的系统;谁能验证这种行为?
编辑:我使用的是Mac OS X Snow Leopard上预安装的Python 2.6的IPython 0.11.dev。在0.10.2上,它实际上并没有终止函数/类定义-也没有终止
def f(x):
return
但是它确实错误地重置了缩进,因此,如果再次按Enter键,则类定义将结束。
解决方法
在我的系统上,这种方式不起作用。
In [1]: def f(x):
...: returnfoo = None
...: return returnfoo
...:
我的版本:
$ ipython -V
0.10.2
, 没有这个问题:
>>> def f(x):
returnfoo = None
return x
...:
>>> f(1)
<<< 1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。