我正在编写一个小的Python脚本来理解一个概念,但又产生了困惑。以下是代码 -
输出结果为 -
现在,我的概念是python解释器从第一行到最后一行读取和执行代码。只有当类被“调用”时,它才会执行类内的代码,而不是在定义时执行。因此,输出应该首先打印“Out”。但是这里先打印了“Middle”。这不应该发生,因为当Python解释器第一次遇到“Middle”时 - 它在定义内部,因此此时不应该执行它。只有在读取代码的最后一行调用类“Exp”之后才应该执行它。
我在Google和StackOverflow上搜索了解决方案,但没有找到一个针对类的解释。
请帮助我理解我错在哪里...
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”。但是这里先打印了“Middle”。这不应该发生,因为当Python解释器第一次遇到“Middle”时 - 它在定义内部,因此此时不应该执行它。只有在读取代码的最后一行调用类“Exp”之后才应该执行它。
我在Google和StackOverflow上搜索了解决方案,但没有找到一个针对类的解释。
请帮助我理解我错在哪里...