Check


プログラミングが無料で学べるYouTubeチャンネルを配信中!

RubyやPython、PHPやReactなど様々なプログラミング言語のチュートリアル動画が充実!

チャンネル登録はこちら

Python

【Python】クラスの書き方と使い方の基本

動画で解説を見る



開発環境

  • Python version: python 3.10.11

Pythonのクラスとは

Pythonのクラスとは、オブジェクト指向プログラミング(OOP)の基本的な概念の一部です。

クラスはデータとメソッドを組み合わせて、特定のデータ型やオブジェクトの定義する設計図のようなものであり、それを基にして実際のオブジェクト(クラスのインスタンス)を作成することができます。

公式リファレンス:https://docs.python.org/ja/3/tutorial/classes.html

Pythonのクラス(class)の書き方

Pythonのクラス(class)の書き方をご紹介します。

Pythonのクラスはclassキーワードを使用して定義し、インデントされたコードブロック内に実行した処理を記述します。

クラスからオブジェクトを作成するためには「クラス名()」と記述することによりインスタンスを生成することができます。

また、生成したインスタンスに対してドット(.)の後にインスタンスメソッド名を記述することでインスタンスメソッドを実行することができます。

Pythonのクラスの命名規則

Pythonのクラスの命名規則にはいくつかルールがあります。

  • 英文字の大文字で始める
  • 2単語以上の場合はキャメルケース(各単語の先頭を大文字にして区別する)にする

英文字の小文字や2単語以上の場はスネークケース(各単語をアンダースコアで連結する)にすることもできますが、クラス名はクラスを識別するために英文字の大文字でキャメルケースで記述されることが一般的です。

Pythonのselfパラメータ

self は、Pythonのクラス内で定義されるメソッドにおいて、そのメソッドが呼び出されたインスタンス自体を指す特殊なパラメータです。

self の名前は慣習的なものであり、Pythonにおいては必ずしも self である必要はありませんが、通常はこの名前を使用します。

クラス内のメソッドが呼び出されると、self はそのメソッドが所属しているインスタンスにバインドされ、メソッドはそのインスタンスのデータにアクセスできるようになります。

Pythonのクラスの使い方

Pythonのクラスのよくあるパターンをサンプルコードを用いて使い方の解説をしていきます。

クラス内にインスタンスメソッドを定義する

このコードではPersonクラスを定義し、クラス内にinfo メソッドがインスタンスメソッドとして定義しています。

クラスのインスタンスを介してインスタンスメソッドを直接呼び出しています。

クラス内にコンストラクタを定義する

このコードではPersonクラスに__init__でコンストラクタを定義しています。

クラスのインスタンス生成時に必要なデータが初期化され、後でinfoメソッドを通じてクラス内の変数にアクセスすることができます。

クラスを継承してサブクラスを定義する

このコードではUserクラスがPersonクラスを継承しています。

そのため、Userクラス自体は何も定義していませんが、Personクラスの機能を引き継いでいるため、Userクラスのインスタンスでもinfoメソッドを利用できます。

サブクラスでメソッドをオーバーライドする

このコードではUserクラスがPersonクラスを継承し、infoメソッドをオーバーライドしています。

これにより、Userクラスは親クラスの同名メソッドを上書きし、独自のinfoメソッドを定義することができます。

おわりに

Pythonのクラスの使い方を解説してきました。

関連した処理をクラスにまとめることにより、コードの再利用がしやすくなり、コードの一貫性や統一性、拡張性がかなり高くなります。

オブジェクト指向プログラミングにおいてクラスの概念はとても重要なポイントになるため、最初は難しいかもしれませんがしっかりとクラスを使いこなしていきましょう。

Check


プログラミングが無料で学べるYouTubeチャンネルを配信中!

RubyやPython、PHPやReactなど様々なプログラミング言語のチュートリアル動画が充実!

チャンネル登録はこちら

-Python