0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

__init__メソッド

Posted at

__init__メソッド

__init__メソッドはインスタンスを生成した直後に処理を実行することができるメソッドです。
クラス名()」でインスタンスを生成した直後に自動で呼び出されます。
__init__メソッドは他のインスタンスメソッドと同様に定義することができます。

class FruitPrice:
    def __init__(self):
        print('自動で出力されました')

fruit_price = FruitPrice()
出力結果
自動で出力されました

と記述することで、fruit_price = FruitPrice()でFruitPriceクラスのインスタンスが生成された直後に__init__メソッドが呼び出され、その中の処理が実行されます。
これまでは、インスタンスメソッドがinfoであればfruit_price.info()と記述しなければ呼び出すことができませんでした。

__init__メソッドを用いる利点

これまでは、
1.クラスを用意する
2.クラスからインスタンスを生成する
3.インスタンス変数に値を代入する
を順に行っていたが、__init__メソッドを用いることで手順の2,3をまとめて、
「インスタンス生成すると同時にインスタンス変数に値を代入する」を行うことができます。

class FruitPrice:
    def __init__(self):
        self.name = 'apple'   # インスタンス生成直後にインスタンス変数nameに'apple'を代入

fruit_price = FruitPrice()
print(fruit_price.name)
出力結果
apple

と記述することで、インスタンス生成直後にインスタンス変数nameに'apple'を代入することができました。
しかし上記のままだと、どのインスタンスにもnameが'apple'になってしまいます。
そのため、__init__メソッドに引数を渡すことで、インスタンスごとに値を変えることができます。
__init__メソッドは通常のインスタンスメソッドと同じように、引数を受け取ることもできます。
その際、インスタンスを生成している「クラス名()」に対して引数を渡すことで、__init__メソッドにその値を渡すことができます。

class FruitPrice:
    def __init__(self, name):   # nameに'apple'が渡されている
        self.name = name

fruit_price = FruitPrice('apple')
print(fruit_price.name)
出力結果
apple
0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?