見出し画像

Python メモ(クラス)

クラスとは?

クラスは「設計図」や「ひな形」みたいなもの。
例えば、「車を作りたい」と思った時に、まず何を作るかの設計図を描いて、それをもとに車を作る。
これと同じように、クラスはオブジェクトを作るための設計図。

オブジェクトとは?

設計図(クラス)から作られた「車」そのもの。
クラスを使って具体的なモノを作ったものがオブジェクト。

オブジェクト指向とは?

オブジェクト指向は、複雑なプログラムを簡単に整理し、管理するための考え方。
物事や概念をオブジェクトとしてとらえ、そのオブジェクトを使ってプログラムを作る。

クラスとオブジェクトの具体例

例として、ねこ(Cat)を作ってみる。

クラスの定義
まず、設計図(クラス)をつくる。

class Cat:
    def __init__(self, breed, color):
        self.breed = breed #ねこの種類
        self.color = color #毛の色

    def meow(self):
        return "ニャー"

↑の説明
・class Cat: 「Cat(ねこ)」というクラスを定義
・ __init__(self, breed, color): クラスのコンストラクタで、新しいねこを作るときに呼び出される特別なメソッド
 ※コントラクタ:オブジェクトが生成されるときに初期化したい値や設定したい状態を指定することができる
・self.breed = breed, self.color = colorは、ねこの種類と色を設定する
・def meow(self): 「meow」というメソッドで、ねこが鳴くときの動作を定義

   Point① 【__ init __ () の役割】
・インスタンスの初期化:
 インスタンスが作成された直後に、そのオブジェクトの初期状態を設定する。つまり、属性の初期化が行われている。

・属性の設定:
 インスタンスに特有のデータ(属性)を割り当てる。これによって同じクラスの異なるインスタンスが異なる値を持つことができる(例:毛の色、しっぽなど)。

   Point② 【self の使用理由】
・インスタンス固有のデータへのアクセス:
 self を使用することで、その特定のインスタンスの属性やメソッドにアクセスできる。例えば、self.breedはそのインスタンスの breed 属性を指す。

・メソッドの呼び出し:
 self を使ってメソッドを呼び出すことにより、そのインスタンスのコンテキスト内でメソッドが実行される。これによって、メソッドがそのインスタンスのデータを操作できるようになる。

オブジェクトの作成
設計図(クラス)を使って、実際のねこ(オブジェクト)を作る。

my_cat = Cat("マンチカン", "真っ白")  #ねこを作成
print(my_cat.breed)  #出力:マンチカン
print(my_cat.color)  #出力:真っ白 
print(my_cat.meow())  #出力:ニャー

オブジェクト指向のメリット・デメリット

【メリット】
①再利用性・拡張性の向上
②変更の影響を局限化
③セキュリティの強化

【デメリット】
①学習の難しさ
②設計の複雑化
③リソース消費



この記事が気に入ったらサポートをしてみませんか?