6.1 オブジェクトとは何か
- Pythonに含まれるオブジェクトは全てオブジェクト
- オブジェクトはデータ(変数、属性と呼ばれる)とコード(関数、メソッドと呼ばれる)の両方が含まれている。
- オブジェクトは何らかの具体的なものの一意なインスタンス(実体、実例)を表している。
- オブジェクトは名詞、オブジェクトのメソッドは動詞と考えることができる。オブジェクトは個別のものを、メソッドは他のものとどのようなやりとりをするかを定義する。
6.2 classによるクラスの定義
- オブジェクトはプラスチックのボックスに喩えたが、クラスはそのようなボックスを作るための鋳型のようなもの。
#Personクラスの定義
>>> class Person():
... pass
...
#オブジェクトはクラス名を関数のように呼び出して作る。
>>> someone=Person()
>>> class Person():
... def __init(self):
... pass
...
#__init__()はクラス定義から個々のオブジェクトを作るときにそれを初期化するメソッドにつけられた特殊名である。また、クラス内で定義する場合、第一引数はselfでなければならない。
#self引数は作られたオブジェクト自体を参照する。
#新しく作ったオブジェクトをself、もう一つの引数("Elmer Fudd")をnameとして渡してオブジェクトの__init__()メソッドを呼び出す。
>>> class Person():
... def __init__(self,name):
... self.name=name
...
>>> hunter = Person("Elmer Fudd")
>>> print("The mighty hunter:",hunter.name)
The mighty hunter: Elmer Fudd
- Personクラスの内部では、name属性にはself.nameという形で、オブジェクト(hunter)の外部からはhunter.nameと呼ぶ。
感想
オブジェクトとクラスは概念はまずまず理解できたが文法が慣れるまで大変だ、、、
参考文献
「Bill Lubanovic著 『入門 Python3』(オライリージャパン発行)」