1章Pythonのデータモデル

言語設計に対するGuidoの美的感覚には驚くべきものがあります。理論的には美しいけれど誰も使わない言語を構築できる言語設計者はたくさんいます。Guidoは、理論的にはちょっとばかし美しくないけど、その分プログラムをするには楽しい言語を設計できる数少ない一人です。

——Jim HuguninJythonの開発者、AspectJの共同開発者、そしてまた.Net DLRの設計者「Story of Jython」より[01-01]†1

[†1] この記事はPedroni & Rappinの『Jython Essentials』のまえがきにも掲載されています[EN-01]

整合性(consistency)はPythonに備わった最も素敵な特徴の1つです。しばらく使っていれば、なじみのない機能でも正しく見当をつけられるようになります。

しかし、Pythonの前に他のオブジェクト指向言語を学んでいると、collection.len()ではなくてlen(collection)を使うことに違和感を覚えるかもしれません。ここに示した座り心地の悪さは氷山の一角でしかありません。しかし、これを正しく理解できれば、わたしたちがPythonic(Python流)と呼んでいるものの総体を把握できるでしょう。この氷山はPythonデータモデルと呼ばれ、これがAPIを形作っています。このAPIを使えば、非常に慣用的(idiomatic)な言語機能を用いながら、自作のオブジェクトをうまく機能させることができます。

データモデルは、Pythonのフレームワークを説明付けるものと考えることができます。シーケンス、イテレータ、関数、クラス、コンテキストマネージャといった言語そのものの構成要素の ...

Get Fluent Python ―Pythonicな思考とコーディング手法 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.