Python で __init__ と self は何をしますか? [重複] 質問する

Python で __init__ と self は何をしますか? [重複] 質問する

私は Python プログラミング言語を学習していますが、完全に理解できないことに遭遇しました。

次のような方法で:

def method(self, blah):
    def __init__(?):
        ....
    ....

selfをするのですか? それは何を意味していますか? それは必須ですか?

このメソッドは何を__init__行いますか? なぜそれが必要なのですか? (など)

これらは OOP 構造である可能性があると思いますが、あまり詳しくありません。

ベストアンサー1

このコードでは:

class A(object):
    def __init__(self):
        self.x = 'Hello'

    def method_a(self, foo):
        print self.x + ' ' + foo

...self変数はオブジェクト自体のインスタンスを表します。ほとんどのオブジェクト指向言語は、これをオブジェクトに定義されたメソッドに隠しパラメータとして渡しますが、Python はそうしません。明示的に宣言する必要があります。クラスのインスタンスを作成しA、そのメソッドを呼び出すと、次のように自動的に渡されます...

a = A()               # We do not pass any argument to the __init__ method
a.method_a('Sailor!') # We only pass a single argument

メソッドは__init__、Python のコンストラクタをほぼ表すものです。 を呼び出すと、A()Python はオブジェクトを作成し、それを__init__メソッドの最初のパラメータとして渡します。追加のパラメータ (例: A(24, 'Hello')) も引数として渡されます。この場合、コンストラクタはそれらを予期していないため、例外が発生します。

おすすめ記事