paiza times

paizaがお届けする、テック・キャリア・マネジメント領域における「今必要な情報」を届けるWebメディア

logo

paizaがお届けする、テック・キャリア・マネジメント領域の「今必要な情報」を届けるWebメディア

さよならPython2…!Python2→3に移行したときの思い出

f:id:paiza:20160305131255j:plain

秋山です。Pythonエンジニアです。

みなさんPythonは好きですか?

年が明けて2020年1月1日になれば、Python2系のサポートが終了します。感慨深いものがありますね(?)。

www.infoq.com

Python3.0が2008年12月3日にリリースされて、もう11年がたちます。

2から3に移行するとき、互換性がなくてみんなが文句を言っていたことも今は懐かしい思い出ですね(?)。

4月15日に開催されるPyCon2020では、みんなでPython2の最後のカタルシス(?)を楽しむらしいです。楽しそうですね。

というわけで、2019年の大みそかに、Python2との思い出を書きたいと思います。

(※正確には2019年10月19日にリリースされた2.7.17が最後のサポートアップデートで、2020年1月1日がサポートが終了、1月中にコードフリーズした上で本当に最後の最後のアップデート2.7.18がリリースされる予定だそうです)

  • Python2のデスマーチについて議論されたメーリングリストでのやり取り

mail.python.org

  • 正式なPython2のサポート廃止に関するアナウンス

www.python.org

Python2→Python3の思い出

print文がprint関数に

www.python.org


【Python2】

print 'HelloWorld'

【Python3】

print('HelloWorld')


これは当時よく話題に上がりましたね。

特にプログラミムの構造に影響を与えず出力をするだけのprintが文というのも変な話ですし、print文の出力先を標準出力以外のファイルなどにしたいときは結構変な書き方をしなければならなかったので、個人的には関数のほうが自然でよいと思います。が、当時はprint文のままがいい派が結構いた気がします。

range関数がxrange関数と同じ動作になって、xrange関数がなくなる

xrange関数を使っているコードが多かったので、当時は結構つらかった思い出があります。

range関数を使ってリストを作り、それを処理しているコードはxrangeのようなイテラブルなオブジェクトが返ってくることを想定していなかったりしたので……。

モジュールの名称や場所の変更、http,urllib類

Python2ではhttplib, SimpleHTTPServerなどhttp系のモジュールがバラバラとありましたが、3ではhttp.〜系にまとめられましたね。urllibとurllib2はどっちがどっちやねんと思うことが多かったので、これは統一されてよかったと思います。

ほかにも、commandsモジュールがsubprocessになったりして、割と書き換え案件が多発しました。

map,filterがイテレータを返すようになり、reduceがfunctoolsに移動

私は高階関数を使うのが好きなので、reduceがfunctoolsに移動してしまったのは当時ちょっと悲しかった思い出です。

リスト内包表記で表現可能ではありますが、reduceはいまだに戻してほしいな〜とちょっぴり思っています。(別にimportすればいいのでほんのちょっぴりですけど……)

まとめ

というわけで、Python2→Python3への思い出はいくらでもあるのですが、3.8で新しくセイウチ演算子が出たり、フォーマット文字列関係でf-stringsが導入されたりしていますし、今後のPython3の動きも楽しみにしつつ、最後のPython2も味わっていきましょう。

フォーマット文字関係は、f-string、format関数、%構文など割と混沌としているので、Python4が生まれる頃に一本化されていることを祈りつつ……。


なおpaizaラーニングでは、「Python3入門編」を全編無料で公開しています。

Pythonの勉強を始めてみたいプログラミング初心者の方、Python2を懐かしみつつPython3に移行したい方はぜひのぞいてみてください。

この記事で今年のpaiza開発日誌の更新はおしまいです。2019年も多くの読者に支えられて、このブログを続けることができました。2020年もpaizaとこのブログをよろしくお願いいたします!


paizaラーニングPython入門編こちら

paizaラーニング





paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。

詳しくはこちら

paizaラーニング

そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。

スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

詳しくはこちら

paizaのスキルチェック

paizaのおすすめコンテンツ

CGC codemonster プログラミングゲーム「初恋プログラミング研究会 ~海に行こうよ~」 CGC codemonster プログラミングゲーム「コードモンスター大図鑑 プログラミングでゲットだぜ!」
paiza転職 paiza新卒 EN:TRY paizaラーニング 記事内に記載している情報は、記事公開時点でのものとなります。 Copyright Paiza, Inc, All rights reserved.