【レビュー】

登場! Python 3.0 - 2系との違いを比較

1 print命令からprint関数へ変更

    後藤大地  [2009/01/01]

    2008年12月3日(オランダ時間)、プログラミング言語Pythonの最新版となるPython 3.0が公開された。3.0は意図的に後方互換性が失われた初のバージョン。これまでのリリースよりも多くの変更が実施されており、すべてのPythonユーザに影響がある。しかし言語仕様が大幅に変更されたわけではない。これまで問題視されていた部分が変更されたといったもので、以前のバージョンよりも言語としての一貫性は向上している。以降で2系と3系の違いで特に注目されるポイントをかいつまんで紹介する。

    Python Programming Language

    最も目につく変更はprint命令がprint関数へ変更されたことだ。3.0ではprint命令は提供されていない。出力するにはprint関数を使う必要がある。表記方法が関数の文法に変わっているほか、ソフトスペース機能もなくなっている。次にPython 2.5で動作する表記と3.0の表記例を示す。

    リスト1 print命令 - Python 2.5

    #!/usr/bin/env python2.5
    
    import sys
    
    # 1. common print style
    print "1 + 1 = ", 1+1
    
    # 2. newline
    print "not new line",
    print
    
    # 3. stderr 
    print >>sys.stderr, "fatal error"
    
    # 4. brancket
    print (10, 20)
    

    リスト2 print関数 - Python 3.0

    #!/usr/bin/env python3.0
    
    import sys
    
    # 1. common print style
    print("1 + 1 = ", 1+1)
    
    # 2. newline
    print("not new line", end=" ")
    print()
    
    # 3. stderr 
    print("fatal error", file=sys.stderr)
    
    # 4. brancket
    print ((10, 20))
    

    プロンプト1 print関数の実行結果

    % ./print30.py
    1 + 1 =  2
    not new line
    fatal error
    (10, 20)
    % 
    

    主な違いは次のとおり。

    1. 命令から関数に変更されたため、引数を括弧 ( ) で囲む必要がある
    2. 従来は末尾に「,」をつけることで改行を抑制していたが、関数の文法に従って「 end=" "」を指定する必要がある
    3. 標準エラー出力への指定も従来の「>>sys.stderr」から、関数の文法に従い「 file=sys.stderr」を指定する必要がある
    4. 従来の表記では括弧そのものが表示されていたケースでも、新しい表記では明示的に括弧を表記する必要がある

    よく使う命令だっただけにこの変更はユーザに印象強く残るが、それほど心配する変更ではない。移行用の2to3スクリプトを使うことでprint命令を自動的にprint関数に置き換えることが可能だし、関数になったことでプログラミング言語としての一貫性が向上して従来よりもすっきりしているからだ。なれてしまえば違和感を抱くこともない。

    関連したタグ

    新着記事

    特設サイトの情報

      求人情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      転職ノウハウ

      あなたの仕事適性診断

      4つの診断で、自分の適性を見つめなおそう!

      Heroes File ~挑戦者たち~

      働くこと・挑戦し続けることへの思いを綴ったインタビュー

      はじめての転職診断

      あなたにピッタリのアドバイスを読むことができます。

      転職Q&A

      転職に必要な情報が収集できます

      スカウト転職する

      企業からアプローチのメッセージが届きます。

      マイナビニュースマガジン