Инструмент 2to3

Введение

Примеры

  • 2

    Основное использование

    Рассмотрим следующий код Python2.x Сохраните файл как example.py

    def greet (name): вывести «Hello, {0}!». format (name) print «Как вас зовут?» имя = raw_input () приветствовать (имя)

    В приведенном выше файле есть несколько несовместимых строк. Не raw_input() метод был заменен на input() в Python 3.x и print больше не утверждение, а функция. Этот код можно преобразовать в код Python 3.x с помощью инструмента 2to3.

    Юникс

     $ 2to3 example.py
     

    Windows

     > path/to/2to3.py example.py
    
     

    Выполнение приведенного выше кода выведет различия по сравнению с исходным файлом, как показано ниже.

     RefactoringTool: Skipping implicit fixer: buffer
    RefactoringTool: Skipping implicit fixer: idioms
    RefactoringTool: Skipping implicit fixer: set_literal
    RefactoringTool: Skipping implicit fixer: ws_comma
    RefactoringTool: Refactored example.py
    --- example.py    (original)
    +++ example.py    (refactored)
    @@ -1,5 +1,5 @@
     def greet(name):
    -    print "Hello, {0}!".format(name)
    -print "What's your name?"
    -name = raw_input()
    +    print("Hello, {0}!".format(name))
    +print("What's your name?")
    +name = input()
     greet(name)
    RefactoringTool: Files that need to be modified:
    RefactoringTool: example.py
    
     

    Изменения могут быть записаны обратно в исходный файл с помощью флага -w. Резервная копия исходного файла с именем example.py.bak создается, если флаг -n не дается.

    Юникс

     $ 2to3 -w example.py
     

    Windows

     > path/to/2to3.py -w example.py
    
     

    Теперь example.py файл был преобразован из Python 2.x в Python кода 3.x.

    После завершения, example.py будет содержать следующий действительный код Python3.x:

    def greet (name): print («Здравствуйте, {0}!». format (name)) print («Как вас зовут?») name = input () greet (name)

Синтаксис

Параметры

Примечания