私は引数が渡されたことに疑問を持っています__init__
pythonのクラスでメソッドです。人々はこれがクラスインスタンスが__init__
メソッドの最初の引数としてここに渡されていると言うでしょう。Pythonのクラスの__init__メソッドの自己は何ですか?
Class A():
def __init__(self):
pass
def check(self):
pass
a = A()
a.check()
我々はここで「」方法__init__
の最初の引数のように渡されていることも理解されるように。しかし、ここでクラスAのインスタンスを作成しました。他のメソッドのチェックは、a.check()
を実行するとOKになります。ここでクラスのインスタンスをチェックして渡されます。 __init__
メソッドでは、何もしなかっただけでインスタンスを作成しました。どのようにそれが渡されているのですか?
例: a = a + 10 ...これは、この式の開始でaを初期化するまで、動作しません。 __init__
と同じです。
ここでインスタンスを作成したのは、= A()です。ここにaが渡されます。
私の質問はちょっと難しいです。しかし、これは私にインタビューで尋ねられました。
ここで助けてもらえますか?
「__new__」がオーバーライドされている(またはメタクラスが使用されている)場合を除いて、この動作は無効になります。 '__init__'は、オブジェクトを構築するときに**常に**呼び出されます。これは*コンストラクタ*(Javaの場合など)のように動作します。 –
hi @WillemVanOnsem ..あなたの答えをありがとう、私はこれがjavaと同じコンストラクタであるという事実を認識しています。しかし、私の質問は少し違う。この引数でこのメソッドを呼び出さなかった場合、最初の引数としてここで自己がどのように渡されているかを理解するのが好きです。 – Anendra