我正在编写一个程序,该程序使用遗传技术来演化方程。我希望能够将函数 'mainfunc' 提交给 Parallel Python 'submit' 函数。函数“mainfunc”调用了在 Utility 类中定义的两个或三个方法。它们实例化其他类并调用各种方法。我想我想要的就是一个 NAMESPACE 中的所有内容。所以我已经实例化了函数'mainfunc'中的一些(也许应该是全部)类。我将实用程序方法称为“generate()”。如果我们要遵循它的执行链,它将涉及代码中的所有类和方法。
现在,方程存储在树中。每次生成、变异或杂交一棵树时,都需要为节点提供一个新键,以便可以从树的字典属性中访问它们。“KeySeq”类生成这些密钥。
在 Parallel Python 中,我将发送多个 'mainfunc' 实例到 PP 的 'submit' 函数。每个人都必须能够访问“KeySeq”。如果他们都访问相同的 KeySeq 实例,这样返回的树上的所有节点都没有相同的键,那就太好了,但如果有必要我可以绕过它。
所以:我的问题是关于把所有东西都塞进mainfunc。谢谢(编辑)如果我没有在 mainfunc 中包含所有内容,我必须通过在各个地方传递各种争论来尝试告诉 PP 有关依赖函数等。我试图避免这种情况。
(后期编辑)如果 ks.next() 在 'generate() 函数内被调用,它会返回错误'NameError: global name 'ks' is not defined'
class KeySeq:
"Iterator to produce sequential \
integers for keys in dict"
def __init__(self, data = 0):
self.data = data
def __iter__(self):
return self
def next(self):
self.data = self.data + 1
return self.data
class One:
'some code'
class Two:
'some code'
class Three:
'some code'
class Utilities:
def generate(x):
'___________'
def obfiscate(y):
'___________'
def ruminate(z):
'__________'
def mainfunc(z):
ks = KeySeq()
one = One()
two = Two()
three = Three()
utilities = Utilities()
list_of_interest = utilities.generate(5)
return list_of_interest
result = mainfunc(params)