Pythonのクラスはどうやって作って使うの?クラスについてわかりやすく解説
Pythonのクラスについて基本的な内容をできるだけわかりやすくまとめています。Pythonのクラスはある処理を行うためのグループのようなものです。ここではクラスの基本的な作り方と使い方を理解することができます。
Pythonのクラスの使い方をマスターしよう!!
今回はPythonのクラスについて学びます。
Pythonにはクラスを扱うためのルールがあります。
使い方をわかりやすくまとめています。
クラスに関する基本的な内容を網羅しています。
目次
01. Pythonのクラスについてわかりやすく解説
_02. クラス変数とインスタンス変数
_03. メソッド
_04. アクセス制限
_05. コンストラクタ
_06. デストラクタ
_07. 文字列化
_08. クラスの継承
_09. 親クラス
_10. クラスの多重継承
_11. クラス階層
12. まとめ
01. Pythonのクラスについてわかりやすく解説
まずはPythonについて簡単に解説します。
Pythonのクラスをレシピに例えて理解してみましょう。
繰り返し同じ処理をする場合決まったデータとしてレシピがあると便利ですよね。
ここでいうレシピがPythonにおけるクラスのイメージです。
Pythonのクラスを理解するにはオブジェクト、クラス、インスタンスという言葉の理解が必要です。
クラスはデータを処理する方法が書かれたレシピです。
クラスにはデータの処理方法が定義されます。
インスタンスは実際に処理されたものをいいます。
料理として例えるのなら完成した料理自体です。
オブジェクトはクラスとインスタンスをまとめた存在として捉えるといいと思います。
この考え方はオブジェクト指向の理解にもつながります。
しっかりと押さえておきましょう。
クラスはこのようにして定義し使用することができます。
_02. クラス変数とインスタンス変数
クラスはクラス変数とインスタンス変数を持つことができます。
インスタンス変数はインスタンスごとに独立の変数でインスタンス.変数名で表すことができます。
クラス変数はクラス名.変数名で表すことができます。
self.nameのselfには上記の例ではn1とn2が引数として与えられています。
n1とn2がインスタンス変数です。
クラス変数のイメージはクラス名をつけることでクラス内の変数にアクセスできるといったようなイメージです。
クラス変数をカウントアップします。
クラス変数の個数を数えます。
クラス変数とインスタンス変数はいつでも追加することができます。
クラス変数とインスタンス変数はどこからでも参照可能です。
_03. メソッド
クラスが持つ関数をメソッドと言います。
メソッドもどこからでも参照可能です。
第1引数にはクラスのインスタンスを指定します。
第2引数はメソッドの引数を受け取ります。
_04. アクセス制限
クラス変数やインスタンス変数は基本的にはどこからでも参照できるのでアクセス制限をつけることも可能です。
_05. コンストラクタ
__init__()メソッドはクラスインスタンスが生成されたときに呼び出されます。
_06. デストラクタ
__del__()はクラスのインスタンスが消滅するときに呼び出されるのがデストラクタです。
_07. 文字列化
__str__()はインスタンスを文字列に変換する処理を定義します。
_08. クラスの継承
クラスは継承することが可能です。
引数を指定している部分に継承したいクラスを入力します。
クラスを継承すると継承のもととなっているクラスのメソッドを利用することができます。
継承のイメージはゲームなんかをやったことがある人はしやすいと思います。
合成前のキャラクターの技を引き継ぐようなイメージです。
ドラクエをやったことがある人ならわかっていただけるかも知れません...。
クラスの継承もととなっているメソッドに変更を加えることができます。
変更を加えることはできますがもととなるクラスのメソッドに影響は与えません。
_09. 親クラス
super()では親クラスを参照します。
第1引数にはクラス、第2引数にはインスタンスを指定します。
__init__()で親クラスを初期化しています。
super()で親クラスのメソッドを引っ張ってくることができるというわけですね。
_10. クラスの多重継承
引数となる部分に継承したいクラスを入れることでいくつものクラスを継承することができます。
これを多重継承といいます。
_11. クラス階層
Pythonのクラスはトップレベルのクラスobjectを継承して作られています。
Pythonのオブジェクトはobjectクラスというものを継承して作られているというわけです。
オブジェクトとはプログラミングで扱うコード上の全てのものを指します。
12. まとめ
お疲れ様でした。
ここまで読んでいただきありがとうございました。
今回はPythonのクラスについて学びました。