クラスとインスタンス
クラスとインスタンスの関係
クラスはモノを生成するための設計図、インスタンスはそのモノのこと
インスタンスを生成するステップ
クラスを用意⇨クラスからインスタンス生成⇨インスタンスに情報追加
クラスの定義
class クラス名:
クラスの中身は『class クラス名:』の後の行でインデント
処理を追加する必要がない場合はpassと書く
インスタンスの作成
クラス名()でクラスを呼び出し、クラスを用いて新たなインスタンスを生成できる
変数名 = クラス名()とすることで、生成したインスタンスを変数に代入することができる
インスタンスに情報を与える
下のコードのようにfruit.name = "バナナ"とする事でfruit1にnameがバナナとであるという情報を追加
このときのnameをインスタンス変数という
インスタンス.インスタンス変数名とすることで、そのインスタンス変数の値を用いることができる
class Fruits:
pass
fruit1 = Fruits()
fruit1.name = "バナナ"
クラスの中に処理を追加
クラスの中に関数を定義することができる(この関数をメソッドという)
メソッドの定義の方法は通常の関数と同じだが第一引数にselfを追加する必要がある
クラスの中で定義したメソッドは、インスタンスに対して使うように呼び出す。具体的には、インスタンス.メソッド名()とすることで、そのメソッドを呼び出すことができる。
インスタンスメソッドの第1引数に指定した「self」には、そのメソッドを呼び出したインスタンス自身が代入されている
インスタンスは情報として「インスタンス変数」を、処理として「インスタンスメソッド」を持っている
initメソッド
initメソッドは他のインスタンスと同様に定義できインスタンスが生成した直後に自動で呼び出される
このメソッドを用いるとインスタンスを生成すると同時にインスタンス変数に値を代入することができる
引数を渡すこともできインスタンスごとに値を変えれる
クラスをそのまま読み込む
from モジュール名 import クラス名とすることで、そのモジュール内の指定したクラスを直接読み込むことができる