Pythonを勉強中です。
この記事では、クラスについてまとめます。
クラス
- クラスとはオブジェクトの設計図
- オブジェクトはクラスから生成される
- クラスから作成したオブジェクトはインスタンスと呼ぶ
- クラスの特徴を引き継いで新たなクラスを作ることを継承と呼ぶ
- 継承元は親クラス、継承先は子クラスと呼ぶ
- クラスを継承していると、定義されていないメソッドの呼び出し時は親クラスのものを呼び出す
- クラスの中にあるメソッドから他のメソッドを呼び出すことができる
- メソッドの定義時に「__」アンダーバーを2つつけるとクラス外から呼び出しができなくなる(プライベーと変数/メソッド)
- オブジェクトに「__」アンダーバーを2つつけて作成したメソッドならクラス外から呼び出しが可能(ネームマングリング)
オブジェクト
- 変数と関数をまとめたもの
- 関数の呼び出すものをメソッドと呼ぶ
- オブジェクト指向と呼ばれる考え方に基づいた文法が用いられる
- Webアプリフレームワーク、大規模開発にも必要
- 変数にオブジェクトを代入することができる
メリット
- どの変数をどのメソッドで処理するか明確
- バグが出にくい
- クラスとオブジェクトに分離される
- 再利用、分類がしやすい
- ライブラリ、フレームワークはクラスをベースに作られている
オブジェクトの利用
- 1つのクラスの中に複数の関数を含めることができる
- 作成したオブジェクトは変数に代入する
- 変数名.メソッド名とすることで呼び出しができる
- コンストラクタはクラスからオブジェクトを作成するときに最初に呼び出しされるメソッド
- コンストラクタはメソッドを呼ぶ指示をしなくても自動で呼び出しされる
- オブジェクトが持つインスタンス変数がある
- インスタンス変数はオブジェクトがある限り値が保存される
- メソッドには引数のselfが必要
- selfはインスタンス変数を使用する際に必要となる引数
- pythonではクラス内のメソッドの第一引数に、メソッドを読んだオブジェクト自身が渡される
オーバーライド
- 子クラスでは親クラスから継承したメソッドを再定義することができる
メモ
「__init__」について
- 「__init__」とはコンストラクタ
- クラスからインスタンスを作成する際に毎回呼び出される
参考書籍・サイト
ここで僕にはpythonの__init__とselfが分からない話をします(メモ)
コメント