我正在编写一个小的 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 解释器在第一次遇到“中间”时 - 它在定义内,因此不应该在那个时候执行。它应该仅在读取调用“Exp”类的最后一行代码后执行。
我在 Google 和 StackOverflow 上搜索了解决方案,但找不到为课程解释它的解决方案。
请帮助我理解我在哪里弄错了......