11章オブジェクト
不思議なものなんてない。不思議なのはあなたの目だ。
—— エリザベス・ボウエン
ものを手に取れ。それに何かをしろ。それに何かほかのことをしろ。
—— ジャスパー・ジョーンズ
今までさまざまな箇所で触れたように、数値から関数に至るまですべてオブジェクトとして実装されている。しかし、オブジェクトのからくりの大半は特殊構文によって隠されている。num = 7と書けば値7の整数型のオブジェクトを作り、numという名前にオブジェクト参照を代入できる。オブジェクトの中を覗くのは、独自のオブジェクトを作りたい場合と、既存のオブジェクトの動作を変えたい場合に限られる。
11.1 オブジェクトとは何か
オブジェクトはデータ(変数または属性と呼ばれる)とコード(関数またはメソッドと呼ばれる)の両方を含むカスタムデータ構造である。何らかの具体的なものの実例(インスタンス)を表現する。オブジェクトを名詞、そのメソッドを動詞と考えるとよい。オブジェクトは個別のものを表し、メソッドはほかのものとどのようなやり取りをするかを定義する。
例えば、「3章 数値」で示したように、値7を持つ整数オブジェクトは加算や乗算などのメソッドを持つ。しかし、8は7とは異なるオブジェクトである。つまり、別の場所に整数のクラスがあり、7や8はそこに属している。'cat'や'duck'などの文字列もオブジェクトであり、「4章 文字列」で説明したcapitalize()やreplace()などのメソッドを持つ。
モジュール(「12章 モジュールとパッケージ」で登場する)とは異なり、同じクラスのオブジェクト(インスタンスとも呼ばれる)は同時に複数持つことができ、個々のオブジェクトが異なる属性を持っていても構わない。オブジェクトは、コードを組み込んだ超データ構造である。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access