私は概念を理解するために小さな Python スクリプトを書いていましたが、別の混乱が生じました。ここにコードがあります -
x = 5
y = 3
class Exp(object):
def __init__(self, x, y):
self.x = x
self.y = y
print("In",x, y, self.x, self.y)
print("Middle",x,y)
print("Out",x,y)
Exp(1,2)
出力は -
Middle 5 3
Out 5 3
In 1 2 1 2
さて、私のコンセプトは、Pythonインタープリターが最初の行から最後の行までコードの読み取りと実行を開始することでした。クラスが定義されたときではなく、「呼び出された」ときにのみクラス内のコードを実行します。したがって、出力は最初に「Out」を出力する必要があります。しかし、ここでは最初に「中」を印刷しています。Python インタープリターが最初に "Middle" に遭遇したとき - これは定義内にあるため、その時点で実行されるべきではありません。クラス「Exp」が呼び出されるコードの最後の行を読み取った後にのみ実行する必要があります。
Google と StackOverflow で解決策を検索しましたが、クラスについて説明しているものは見つかりませんでした。
どこが間違っているのか分かりやすく教えてください...