假设我有以下内容:
def f(t):
return a*t
def g(t):
a=5
b=4
for u in range(t):
a=a+u
b=f(t)+b
return b
在每个步骤中,f(t)将更新b中的' for' loop在其定义中有更新的a,还是永远都是5?
答案 0 :(得分:2)
f(t)
在其定义中更新了a
的值,它应该作为参数传递给该函数。
如果您要求t
f(t)
的每个值都更新a
,请执行以下操作:
def f(t,a):
return a*t
在f(t)
a
的定义中未定义。
然后在g(t)
修改f(t)
到f(t,a)
。
def g(t):
a=5
b=4
for u in range(t):
a=a+u
b=f(t,a)+b
return b