модуль python _2or3? - PullRequest
       4

модуль python _2or3?

3 голосов
/ 02 апреля 2011

Я пишу модуль, позволяющий мне писать код на Python 3, но все же запускаю его на 2. На самом деле это выглядит удивительно легко ... что-нибудь еще, что я должен добавить?Из моего (ограниченного) колебания интерактивного интерпретатора, будущие импорты не влияют на Python 3 и рассматриваются как избыточные.

# _2or3.py
'''
Common usage:

from __future__ import print_function, nested_scopes, division, absolute_import, unicode_literals
from _2or3 import *
'''

import sys

if sys.version[0] == '2':
   range = xrange
   input = raw_input 

Очевидно, что есть некоторые вещи, которые вы не можете сделать, которые вы обычно могли бы делатьв 3 (как сжатие словаря), и есть несколько ошибок между языками (например, байт-коды. Похоже, вы никогда не должны использовать байты)

Любые комментарии приветствуются.

1 Ответ

3 голосов
/ 02 апреля 2011

Проверьте шесть , который уже делает это, и загружает больше.У этого также есть методы, которые помогают вам делать двоичный код и Unicode в обеих версиях.Однако не все методы, которые вам нужно сделать, могут быть выполнены таким образом, особенно если вам нужно поддерживать Python 2.5 или более раннюю версию.Я пытался охватить большинство из них в книге , но я уверен, что пропустил некоторые из них.

...