1
1

More than 3 years have passed since last update.

pythonのクラス、インスタンス

Posted at

クラスとインスタンス

クラスとインスタンスの関係

クラスはモノを生成するための設計図、インスタンスはそのモノのこと

インスタンスを生成するステップ

クラスを用意⇨クラスからインスタンス生成⇨インスタンスに情報追加

クラスの定義

class クラス名:
クラスの中身は『class クラス名:』の後の行でインデント
処理を追加する必要がない場合はpassと書く

インスタンスの作成

クラス名()でクラスを呼び出し、クラスを用いて新たなインスタンスを生成できる
変数名 = クラス名()とすることで、生成したインスタンスを変数に代入することができる

インスタンスに情報を与える

下のコードのようにfruit.name = "バナナ"とする事でfruit1にnameがバナナとであるという情報を追加
このときのnameをインスタンス変数という
インスタンス.インスタンス変数名とすることで、そのインスタンス変数の値を用いることができる

python.py
class Fruits:
  pass

fruit1 = Fruits()
fruit1.name = "バナナ"

クラスの中に処理を追加

クラスの中に関数を定義することができる(この関数をメソッドという)
メソッドの定義の方法は通常の関数と同じだが第一引数にselfを追加する必要がある
クラスの中で定義したメソッドは、インスタンスに対して使うように呼び出す。具体的には、インスタンス.メソッド名()とすることで、そのメソッドを呼び出すことができる。
インスタンスメソッドの第1引数に指定した「self」には、そのメソッドを呼び出したインスタンス自身が代入されている
インスタンスは情報として「インスタンス変数」を、処理として「インスタンスメソッド」を持っている

initメソッド

initメソッドは他のインスタンスと同様に定義できインスタンスが生成した直後に自動で呼び出される 
このメソッドを用いるとインスタンスを生成すると同時にインスタンス変数に値を代入することができる
引数を渡すこともできインスタンスごとに値を変えれる

クラスをそのまま読み込む

from モジュール名 import クラス名とすることで、そのモジュール内の指定したクラスを直接読み込むことができる

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1