我有一个函数step()
,它可以更改对象foo
的值。从另一个文件中反复调用step
以在不同的输入上运行。我想从上次迭代访问foo
的值,以便可以在当前迭代中对其执行一些操作。我该如何实现?
def step(blob):
(some code which accesses foo.pos for blob1)
foo.pos = op(blob)
def calling_func():
items = [blob1, blob2, blob3]
for i in items:
step(i)
因此,当我将blob2
传递给step()
时,我想在传递pos
时访问step
中属性blob1
的值。而且我想执行多次,直到调用step
。另外,函数step()
不返回任何内容。
答案 0 :(得分:0)
您可以向step
添加另一个参数,并将其用作堆栈以跟踪先前的值:
def step (blob, stack):
stack.append (foo.pos)
(some code which accesses foo.pos for blob1)
foo.pos = op(blob)
return stack
def calling_func():
stack = []
items = [blob1, blob2, blob3]
for i in items:
stack = step(i,stack)
列表stack
总是在最后添加最后一个元素,因此stack.pop()
将为您提供上一次迭代的元素。