Я работал над учебником по SQLAlchemy ORM в оболочке IPython и дошел до того, что мне пришлось поместить password = Column(String)
в определение класса. Как ни странно, определение класса прекратилось, как только я его ввел.
Немного поиграв, я обнаружил, что любая строка, начинающаяся с pass
, return
или raise
в определении класса или функции, например
def f(x):
returnfoo = None
завершает определение в IPython. Это не происходит в интерпретаторе Python по умолчанию, так что это не проблема Python. Я бы предположил, что это ошибка в IPython, но хотел убедиться, что это не только моя система; Кто-нибудь может проверить это поведение?
РЕДАКТИРОВАТЬ: я использовал IPython 0.11.dev для Python 2.6, предустановленный на Mac OS X Snow Leopard. На 0.10.2 он фактически не завершает определение функции / класса - и
def f(x):
return
но он по умолчанию сбрасывает отступ, так что если вы нажмете Введите снова, определение класса закончится.