函数调用作为参数在python 3.x中打印

San*_*a S 2 python function-call python-3.x

a = 0
def f():
    global a
    a = 1
    print(a)
print(a, f(), a)
Run Code Online (Sandbox Code Playgroud)

上述代码的输出结果如下:

1
0 None 1
Run Code Online (Sandbox Code Playgroud)

为什么f在打印第一个参数之前调用函数a?为什么是第一个参数的值0,即使在函数调用之后?

T-8*_*800 5

你得到的输出是:

1
0 None 1
Run Code Online (Sandbox Code Playgroud)

当你调用print()它时,首先计算要打印的元素.正如你在print(a)里面f()所获得的那样1.然后,它开始打印.调用函数之前的值a是0.当你打印一个不返回任何东西的函数时,你会得到None.当您在全局更改值1时,最终会得到结果.