こんにちは!ゆーや(@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__」は、コンストラクタと呼ばれるものです!
コンストラクタについての詳細な説明は
にまとめてありますので、気になる方は見て頂けたらと思います!
簡単に言うと、コンストラクタとは「クラスをインスタンス化した時に自動で呼び出される関数」です!
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というクラスの理解に挑戦してみよう!
コメント