【完全独学Python】クラス(class)はこれだけ覚えて!初心者向けに徹底解説!

基礎

こんにちは!ゆーや(@yuyamanm118712)です。

こちらのページでは完全独学でWebプログラマとなった私が

「クラス(class)」に関して必要な情報をまとめています。

この記事を読むと

  • クラス(class)とは何か」がわかる
  • クラス(class)をいつ使うのか」がわかる
  • クラス(class)の使い方」がわかる
  • __init__の意味が分かる

最後までじっくりと読んで、一緒に学習にしていきましょう。

なお、ご指摘・ご質問はTwitter(@yuyamanm118712)のDMまでよろしくお願いします。

クラス(class)とは

クラス(class)ってなに

ゆーや
ゆーや

データや関数をまとめたプログラムの部品だよ!

プログラムの中でよく使う処理などを毎回記述するのではなく、部品として保存しておくことで

  • 簡単に再利用できる
  • メンテナンスがしやすい

このようなコードが書けるようになります!

オブジェクト指向の基本的な考え方ですね!

クラス(class)の定義

クラス(class)は次のように定義します!

Taxという消費税の計算をしてくれる部品を作りましょう!

class Tax:
    pass
ゆーや
ゆーや

クラスの名前の先頭の文字は大文字が一般的だよ!

「pass」は何もしないということを意味します!

クラス変数

クラス変数を用いて、Taxに消費税率10%という情報を持たせましょう!

class Tax:
    # 消費税10%
    tax = 1.1
ゆーや
ゆーや

クラス変数は、ただの変数と同じように定義できるよ!

インスタンス化

定義したクラスはそのままでは使えません!

インスタンス化をして、初めて部品として使えます!

class Tax:
    # 消費税10%
    tax = 1.1
   
# インスタンス化
item01 = Tax()
print(item01.tax)

# 実行結果
1.1
ゆーや
ゆーや

インスタンス化は「クラス名()」でできるよ!
ここではitem01という変数にTaxのインスタンスを代入しているね!

クラス変数には、「インスタンス名.クラス変数名」でアクセスできるよ!

__init__メソッド(コンストラクタ)

pythonのコードでよく見る「__init__」は、コンストラクタと呼ばれるものです!

コンストラクタについての詳細な説明は

現場でよく聞くIT用語!!「コンストラクタ」について解説! - 現場でよく聞くIT用語大辞典
コンストラクタは、オブジェクト指向プログラミングにおいて、クラスのインスタンスを作成するための特別なメソッドで

にまとめてありますので、気になる方は見て頂けたらと思います!

簡単に言うと、コンストラクタとは「クラスをインスタンス化した時に自動で呼び出される関数」です!

class Tax:
    # 消費税10%
    tax = 1.1
    
    # コンストラクタで価格と商品名を設定
    def __init__(self, price, name):
        self.price = price # 引数priceをself(インスタンス自身)の変数 price に設定
        self.name = name # 引数name をself(インスタンス自身)の変数 name に設定

item01 = Tax(198, "ノート")
print(item01.price)
print(item01.name)
# 実行結果
198
ノート


item02 = Tax(90, "えんぴつ")
print(item02.price)
print(item02.name)
# 実行結果
90
えんぴつ

ゆーや
ゆーや

__init__には、必ず引数として、「self」を渡します!
priceやnameは、インスタンス変数と言われるもので

各インスタンスに必要な情報を設定できます!

メソッド

クラスには関数を持たせることができます!

ここでは、価格の税込み価格を計算してくれるcal_taxというメソッドを作ってみます!

class Tax:
    # 消費税10%
    tax = 1.1
    
    # コンストラクタで価格と商品名を設定
    def __init__(self, price, name):
        self.price = price
        self.name = name
    
    # 税込みの値段を計算
    def cal_tax(self):
        print(self.price * self.tax)

    
item01 = Tax(198, "ノート")
print(item01.price)
print(item01.name)
item01.cal_tax()
# 実行結果
198
ノート
217.8


item02 = Tax(90, "えんぴつ")
print(item02.price)
print(item02.name)
item02.cal_tax()
# 実行結果
90
えんぴつ
99.00000000000001
ゆーや
ゆーや

メソッドにも「self」を渡すことを忘れずに!
ここでは引数がselfだけですが、もちろん引数を持たせることもできるよ!

メソッドを利用する時も「インスタンス名.メソッド名()」で使えるよ!

まとめ

① クラス(class)はデータや関数をまとめたプログラムの部品
② クラス(class)の定義の仕方
③ クラス変数の定義の仕方
④ メソッドの定義の仕方
⑤ インスタンス化の仕方

ゆーや
ゆーや

まとめの内容を見て、もう頭に浮かべば完璧!

クラス(class)が理解出来たら

ゆーや
ゆーや

Enumというクラスの理解に挑戦してみよう!

コメント

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