Python クラス編_1

Python

こんにちは!ぼりたそです!今回はPythonのクラスについて記事をまとめてみました。

この記事は以下のポイントでまとめています。

Point
  • クラスとは?
  • メソッド
  • クラスの生成
  • インスタンス化

クラスはオブジェクト指向プログラムであるPythonの根底にもなる概念ですので、ぜひ理解したいところです。今回は少し長い記事になりそうなので2回に分けて解説します!

クラスまで理解できればPythonの初心者を卒業したことになると思いますので、ぜひみていって下さい!

クラスとは?

Pythonはオブジェクト指向のプログラム言語であり、値やデータ群をオブジェクトとして一定の処理ができるようになっています。この一定の処理に関して記述されたソースコードのことをクラスと言います。イメージ的にはクラスは設計図的な役割を果たしていると考えていただければと思います。

なんていきなり言われても何のことやら?と思うかもしれません。

例えば以下のように空のリストを生成し、要素を追加するコードがあったとします。Pythonにおいてこのリストこそがオブジェクトなのです。そしてリストはクラスによってどのような処理ができるかが定義されています。

下の例ではリストクラスの中にあるappendメソッドを使用して要素を追加しています。Pythonではリストに限らずタプルや辞書などもオブジェクトであり、そのソースコードであるクラスには必ずどのような処理ができるかが記述されています。逆にクラスに定義されていないメソッドは使用することができできないという事ですね。

#空のリストを生成し、9を追加
l = list()
l.append(9)
print(l)
#出力結果
#[9]

クラスはPythonで最初に定義されているもの以外に、自分でも自由に定義することができます。なので、欲しい機能がないなあと思った方は自分好みのクラスを記述してみましょう!

メソッド

先ほど「メソッド」という用語が出てきましたが、メソッドについても説明しておきます。メソッドはクラスの中に定義されている関数のことです。関数独立で定義されているものを関数、クラス内で定義されている関数をメソッドと覚えていただければと思います。

例えば、下に示すのはリストクラスで定義されているメソッドですね。いずれもlist.メソッドと記述すれば呼び出して使用することができます。

関数処理呼び出し方
append要素を追加list.append(要素)
insert任意の場所に要素を追加list.insert(index,要素)
pop任意の場所の要素を削除して返すlist.pop(index)
remove一番最初にヒットした要素を削除list.remove(要素)
clear要素を全て削除list.clear()
sort並び替えlist.sort()

クラスの生成

では実際にクラスを定義してみましょう。クラスの定義の仕方は以下のような記述をするだけです。

class クラス名:

実際にSelf_Introductionというクラスを定義してみました。特にメソッドは用意していません。

#空のクラスを定義
class Self_Introduction:
    pass

インスタンス化

クラスは設計図のようなものとご紹介しました。では実際にクラスを基にオブジェクトとして使用するにはどうしたら良いのか解説します。

クラスをオブジェクトとして使用するには以下のように記述すればよいのです。

変数名=クラス名()

実際に先ほど定義したSelf_Introductionをオブジェクトとして呼び出してみましょう。

#クラスの呼び出し
class Self_Introduction:
    pass

sf = Self_Introduction()

Pythonのクラスを問題演習で身につけたい方へ

ここまで、Pythonのクラスについて、

  • クラスとは何か
  • メソッドとは何か
  • クラスの定義
  • インスタンス化

といった基本的な内容を紹介してきました。

クラスは、Pythonの基本文法の中でも特に難しく感じやすい部分です。

「クラスが設計図というのは分かったけれど、実際に何を作ればいいのか分からない」

「インスタンスを作ったあと、どう使えばいいのかイメージできない」

という方も多いのではないでしょうか。

Pythonの基本文法を実際にコードを書きながら練習したい方向けに、Kindle書籍**『Python 文法演習100問』**を出版しました。

本書では、クラスについても1つの章を設け、今回紹介した内容に加えて、

  • クラスの定義
  • インスタンスの作成
  • 属性
  • __init__を使った初期設定
  • メソッドの定義
  • クラスを使ったデータ管理

などを、問題を解きながら段階的に学べるようにしています。

後半では、学生や商品、銀行口座などを題材にして、複数のデータと処理をクラスにまとめる練習も行います。

クラスは、これまで学んできた変数、条件分岐、繰り返し処理、関数などを組み合わせて使うことが多いため、Pythonの基本文法の総仕上げとしても重要な内容です。

本書ではクラスだけでなく、

  • 数値・文字列
  • リスト
  • 辞書
  • タプル・集合
  • 条件分岐
  • 繰り返し処理
  • 関数

まで、Pythonの基本文法を全100問の演習形式で扱っています。

各問題では、あらかじめ示された実行結果や条件を確認し、

「どのようなクラスやメソッドを作ればよいか」

を自分で考えてコードを作成します。

説明を読むだけではなく、実際にクラスを定義し、インスタンスを作り、属性やメソッドを使うことで、Pythonを**「分かる」状態から「自分で使える」状態へ進むこと**を目指した問題集です。

「クラスの基本は分かったので、実際に自分で作る練習をしたい」

「__init__や属性、メソッドまで一通り理解したい」

「Pythonの基本文法を最後まで体系的に復習したい」

という方にもおすすめです。

価格は980円で、Kindle Unlimited対象となっています。

Kindle Unlimited会員の方であれば、追加料金なしで読むことができます。

kindle版 980円 | kindle unlimited対象

終わりに

ひとまずクラスの定義方法、オブジェクトとして呼び出す方法まで解説しました!次の記事ではもう少し詳細にメソッドの定義やクラスの継承など踏み込んだ内容について解説していきたいと思いますので、楽しみにしていた下さい!

クラスは初学者の方には少し難しい内容となるかと思います。ご不明点などありましたらお問合せフォームよりご連絡いただければと思います。それではまた会いましょう!

タイトルとURLをコピーしました