私は 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')
) も引数として渡されます。この場合、コンストラクタはそれらを予期していないため、例外が発生します。