Python代码评估顺序?

时间:2013-07-29 04:22:12

标签: python operator-precedence

以下代码的输出为

5
3

我是Python的新手,任何人都可以向我解释原因吗?

import sys

def Main():
     str='1+2'
     print eval(str)

class A:
    def __init__(self):
        self.x = 5

a = A()
print a.x

if __name__=="__main__":
    Main()

1 个答案:

答案 0 :(得分:10)

Python代码是自上而下评估的,而不是来自Main()

解释器首先看到a = A()行,然后打印等于5的a.x,然后检查if条件并打印eval(str),即3 1}}。

因此输出,

 5
 3