If you want all instances to mainfuncuse the same object KeySeq, you can use the default parameter trick:
def mainfunc(ks=KeySeq()):
key = ks.next()
ks, mainfunc KeySeq, .
, : - . . func_defaults; , , . , , func_defaults. , mainfunc ks, KeySeq() func_defaults. mainfunc KeySeq.
, " mainfunc submit PP". ? , , , .
( , ). , g :
>>> def f():
def g(x=[]):
return x
return g
>>> g1 = f()
>>> g2 = f()
>>> g1().append('a')
>>> g2().append('b')
>>> g1()
['a']
>>> g2()
['b']
g() , ( ) func_defaults. g1 g2 g, x , .
, , :
def mainfunc(): hasattr (mainfunc, "ks" ): setattr (mainfunc, "ks", KeySeq()) key = mainfunc.ks.next()
, , : , , , . callback.py Parallel Python , Sum .