Как записать Python 2.6 + сценарий, который корректно перестал работать с более старым Python?

Я использую новую печать из Python 3.x, и я заметил, что следующий код не компилирует из-за end=' '.

from __future__ import print_function

import sys
if sys.hexversion < 0x02060000:
    raise Exception("py too old")

...
print("x",end=" ") # fails to compile with py24

Как я могу продолжить использовать новый синтаксис, но сделать сбои сценария приятно? Действительно ли это обязательно, чтобы назвать другой сценарий и использовать только безопасный синтаксис в этом?

5
задан Craig McQueen 23 June 2010 в 11:00
поделиться

2 ответа

В этом вопросе есть несколько предложений, но похоже, что это нелегко. Вам нужно будет создать сценарий-оболочку.

2
ответ дан 18 December 2019 в 16:36
поделиться

Один из способов - написать модуль с помощью оператора печати python 2.x, а затем, когда вы захотите перенести его на python 3, вы воспользуетесь сценарием 2to3. Я думаю, что есть сценарии для преобразования 3to2, хотя они кажутся менее зрелыми, чем 2to3.

В любом случае, в более крупных сценариях вы всегда должны разделять логику предметной области и ввод / вывод; Таким образом, все операторы / функции печати объединяются в один файл. Для ведения журнала следует использовать модуль ведения журнала.

2
ответ дан 18 December 2019 в 16:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: