Встроенные операторы Python 2.4 - PullRequest
2 голосов
/ 02 мая 2010

Я настраиваю существующий проект django на веб-сервере Dreamhost, и пока у меня есть все для правильной работы. Однако я разработал под Python 2.5 и Dreamhost по умолчанию использует Python 2.4. Следующая строка дает синтаксическую ошибку из-за ключевого слова if:

'parent': c.parent.pk if c.parent is not None else None
                       ^

Это тот случай, когда эта форма оператора if была введена в Python 2.5, если так, есть ли простое изменение, которое сделало бы его совместимым с Python 2.4?

Или я должен просто перейти на Python 2.5. Я уже установил python 2.5 в каталог под моим домашним каталогом и успешно запустил интерпретатор python под 2.5. Если я хочу использовать Python 2.5 для всего, где я могу установить это?

Ответы [ 2 ]

4 голосов
/ 02 мая 2010

Да, этот тип встроенного оператора, если был , добавлен с 2.5 , выпущен почти 4 года назад. Вы можете обновить свою версию Dreamhost вот так

2 голосов
/ 02 мая 2010

http://www.diveintopython.net/power_of_introspection/and_or.html

(1 and [a] or [b])[0]
'parent': (c.parent is not None and [c.parent.pk] else [None])[0]
...