在Perl 5.10中,我可以这样说:
sub foo () {
state $x = 1;
say $x++;
}
foo();
foo();
foo();...and它将打印出来:
1
2
3Python有这样的东西吗?
发布于 2009-03-03 00:30:12
最接近的并行方法可能是将值附加到函数本身。
def foo():
foo.bar = foo.bar + 1
foo.bar = 0
foo()
foo()
foo()
print foo.bar # prints 3发布于 2009-03-03 00:27:46
在这里,类可能更适合(通常更适合涉及“state”的任何内容):
class Stateful(object):
def __init__(self):
self.state_var = 0
def __call__(self):
self.state_var = self.state_var + 1
print self.state_var
foo = Stateful()
foo()
foo()发布于 2009-03-03 00:28:48
Python有一些生成器可以做类似的事情:
https://stackoverflow.com/questions/604622
复制相似问题