はじめに
無職生活をしていると、毎日が自由すぎて、「今日は何をしよう…」と考える時間が増えますよね。まるでRPGの主人公のように、自分で行動を決める生活。しかし、同じ行動を繰り返すと「まるでNPCみたい…?」と感じることも。
実は、プログラミングでも「同じ動作をするもの」を管理する仕組みがあるんです。それが クラス(Class)です!
クラスを使うと、「無職」というキャラクター(オブジェクト)を作り、それに特徴や行動を持たせることができます。例えば、「節約する無職」「怠惰な無職」「資格取得に励む無職」など、それぞれ異なる特性を持たせることが可能になります。
では、Pythonでのクラスの使い方を見ていきましょう!
クラスの基本
クラスとインスタンスとは?
Pythonでは、オブジェクト指向を使うために「クラス(class)」を定義します。クラスは「設計図」のようなもので、そこから実際の「オブジェクト(インスタンス)」を作ります。
例えば、ゲームのキャラクターを作る場合、「無職」というクラス(設計図)を作れば、そのクラスを元に「タケシ」や「ヨシオ」といったキャラクター(オブジェクト)を作成できます。
では、Pythonでクラスを定義してみましょう。
class 無職:
def __init__(self, 名前, 貯金):
self.名前 = 名前 # 名前を設定
self.貯金 = 貯金 # 貯金額を設定
def 自己紹介(self):
print(f"こんにちは、無職の{self.名前}です。貯金は{self.貯金}円です。")
__init__ って何?
__init__ は 「initialize(初期化)」 の略で、新しく作られたオブジェクトに最初の値を設定する役割を持っています。
例えば、クラスがない場合、オブジェクトを作ったあとに毎回 名前 や 貯金 を手動で設定しなければなりません。それは面倒ですよね?そこで __init__ を使うと、オブジェクトを作成すると同時に、名前や貯金の値をセットできるのです。
self って何?
self は 「そのオブジェクト自身」 を指します。もし self を書かなかったら、Pythonが「どの無職の名前を設定するの?」と混乱してしまいます。
このクラスを使って、新しい「無職キャラ」を作成できます。
Aさん = 無職("タケシ", 500000)
Bさん = 無職("ヨシオ", 200000)
Aさん.自己紹介()
Bさん.自己紹介()
出力:
こんにちは、無職のタケシです。貯金は500000円です。
こんにちは、無職のヨシオです。貯金は200000円です。
こんな感じで、クラスを使うと「無職キャラ」をたくさん作れるようになります!
メソッドを追加する
クラスには、オブジェクトの「ふるまい(メソッド)」を定義できます。たとえば、貯金を増やすメソッドを追加してみましょう。
class 無職:
def __init__(self, 名前, 貯金):
self.名前 = 名前
self.貯金 = 貯金
def 自己紹介(self):
print(f"こんにちは、無職の{self.名前}です。貯金は{self.貯金}円です。")
def バイトする(self, 給料):
self.貯金 += 給料
print(f"{self.名前}はバイトして{給料}円稼いだ!現在の貯金:{self.貯金}円")
def 散財する(self, 出費):
if self.貯金 >= 出費:
self.貯金 -= 出費
print(f"{self.名前}は{出費}円使った…現在の貯金:{self.貯金}円")
else:
print(f"{self.名前}は散財しようとしたが、貯金が足りなかった…")
Aさん = 無職("タケシ", 500000)
Aさん.バイトする(5000)
Aさん.散財する(20000)
Aさん.散財する(600000)
出力:
タケシはバイトして5000円稼いだ!現在の貯金:505000円
タケシは20000円使った…現在の貯金:485000円
タケシは散財しようとしたが、貯金が足りなかった…
クラスを使えば、無職生活のシミュレーションもできるんですね!(あまりリアルにやると虚しくなるので注意)
クラスの応用(継承)
「無職」から「節約無職」へ
「無職」といっても、いろいろなタイプがいます。そこで、基本の無職クラスをもとに、派生クラスを作ることができます。
例えば、「節約無職」という新しいクラスを作りたいとします。このとき、「無職」クラスの機能を引き継ぎたいですよね?そんなときに super().__init__() を使います。
class 節約無職(無職):
def __init__(self, 名前, 貯金, 倹約レベル):
super().__init__(名前, 貯金)
self.倹約レベル = 倹約レベル
def 節約生活(self):
print(f"{self.名前}は倹約レベル{self.倹約レベル}の節約生活を送っている!")
Cさん = 節約無職("マサル", 1000000, 99)
Cさん.自己紹介()
Cさん.節約生活()
出力:
こんにちは、無職のマサルです。貯金は1000000円です。
マサルは倹約レベル99の節約生活を送っている!
super().__init__() って何?
super().__init__() を使うと、親クラス(無職)の __init__ を呼び出すことができます。つまり、節約無職 を作るときも 名前 や 貯金 の初期化を 無職 クラスに任せることができます。
まとめ
- クラスとは? → 設計図のようなもの
- オブジェクトとは? → クラスから作られた実体
- メソッドを追加すると? → 行動を持たせることができる
- 継承を使うと? → 派生クラスを作れる
クラスを使うと、プログラムの管理がしやすくなり、再利用性も向上します。Pythonを学ぶなら、ぜひオブジェクト指向を活用しましょう!
40代独身無職のゆる生活 Yuru Life Journal 
