2

我一直在 IPython shell 中完成SQLAlchemy ORM 教程password = Column(String),并且到了必须放入类定义的地步。奇怪的是,类定义一输入就终止了。

玩了一会儿之后,我发现任何以 , 开头的行passreturn或者raise在类或函数定义中,例如

def f(x):
    returnfoo = None

终止 IPython 中的定义。这在默认的 python 解释器中不会发生,所以这不是 python 问题。我认为这是 IPython 中的一个错误,但想确保它不仅仅是我的系统;任何人都可以验证这种行为吗?

编辑:我使用 IPython 0.11.dev 预装在 Mac OS X Snow Leopard 上的 Python 2.6。在 0.10.2 上,它实际上并没有终止函数/类定义——也没有

def f(x):
    return

但它确实错误地重置了缩进,因此如果Enter再次按下,类定义将结束。

4

2 回答 2

1

它在我的系统上不起作用。

In [1]: def f(x):
   ...:     returnfoo = None
   ...:     return returnfoo
   ...: 

我的版本:

$ ipython -V
0.10.2
于 2011-05-30T19:34:34.263 回答
0

没有这个问题:

>>> def f(x):
    returnfoo = None
    return x
...: 

>>> f(1)
<<< 1
于 2011-05-30T19:38:57.303 回答