Python 我很难弄清楚这个嵌套函数是如何得到这些值的。有人能给我解释一下吗。顺便说一句,代码是有效的
我很难弄清楚这是怎么回事。有人能给我解释一下吗。顺便说一句,代码是有效的 def foo(x,y):Python 我很难弄清楚这个嵌套函数是如何得到这些值的。有人能给我解释一下吗。顺便说一句,代码是有效的,python,function,nested,Python,Function,Nested,我很难弄清楚这是怎么回事。有人能给我解释一下吗。顺便说一句,代码是有效的 def foo(x,y): 要理解代码是如何工作的,只需遵循函数即可 调用foo。由于integer类型在foo(x,y)x和y中是()的,因此x和y是您作为参数给出的x的副本 在python中,表达式从左到右求值 调用第一个函数hoo(关于参数的相同注释)改变x和y的值,并计算z,得到('x=',5',;y=',6',;z=',11),然后返回值z(11) 一旦超出hoo功能x和y在该级别分别为10和20,因为它们没有改
要理解代码是如何工作的,只需遵循函数即可 调用
foo
。由于integer
类型在foo(x,y)
x
和y
中是()的,因此x
和y
是您作为参数给出的x的副本
在python中,表达式从左到右求值
调用第一个函数hoo
(关于参数的相同注释)
改变x
和y
的值,并计算z
,得到('x=',5',;y=',6',;z=',11)
,然后返回值z
(11)
一旦超出hoo
功能x
和y
在该级别分别为10和20,因为它们没有改变(不变的东西…见上文)。然后调用函数goo
。(关于参数的注释相同)(警告您为goo
的参数x
输入y
,为goo
的参数y
输入y
)将更改x
和y
的值,并计算z
,得到('x=',40',y=',30',z=',70)和z
(70)返回
一旦超出goo
功能x
和y
这个级别,它们分别是10和20,因为它们没有改变(不变的东西…见上文)
通过hoo
和goo
返回的两个值之间的求和函数完成。z
=11+70。得到('x=',10',;y=',20',;z=',81),然后返回z
然后在foo
函数之外。这个级别的x
和y
分别是10和20,因为它们没有改变(不变的东西…见上文)。z被赋予返回函数foo
的值,因此z
=81
你会得到('x=',10',y=',20',z=',81)请正确设置代码格式,并阅读以下关于如何提问的指南:
def goo(x, y):
x = 2*x
y = 3*y
z = x+y
print('x =', x, '; y =', y, '; z =', z)
return z
def hoo(x, y):
x = x//2
y = y//3
z = x+y
print('x =', x, '; y =', y, '; z =', z)
return z
z = hoo(x,y) + goo(y,x)
print('x =', x, '; y =', y, '; z =', z)
return z
x = 10
y = 20
z = 30
print('x =', x, '; y =', y, '; z =', z)
z = foo(x,y)
print('x =', x, '; y =', y, '; z =', z)