gpt4 book ai didi

python - `print()`是怎么工作的?

转载 作者:行者123 更新时间:2023-12-02 15:57:27 25 4
gpt4 key购买 nike

一段python3.x代码演示:

def fun():
global x
y.append(6)
x = 6

x = 3
y = [3]
print(x, y, fun(), x, y)

段输出:

3 [3, 6] None 6 [3, 6]

如果 print() 的过程计算了所有的项目然后输出项目,那么这就解释了为什么 y 的结果在 fun() 之前fun() 之后都是 [3, 6],就像它们在这里一样。但是为什么函数fun()前后x的值不一样呢?

最佳答案

当您调用一个函数时,例如示例中的 print,参数将从左到右求值。

您的调用将 x 作为参数两次。第一个用原始值 3 求值。然后调用 fun(),这具有更改全局变量 x 的副作用。之后再次计算 x 时,您将获得更新后的值 6

如果您对所有参数都使用函数调用,可能会更清楚一些,因为这样您也可以打印一些输出:

def get_x():
print("x is", x)
return x

def change_x():
global x
x += 1
print("x changed")

x = 0

print("args evaluated left to right:", get_x(), change_x(), get_x())

输出是:

x is 0
x changed
x is 1
args evaluated left to right: 0 None 1

关于python - `print()`是怎么工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71248039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com