gpt4 book ai didi

python - 构建程序。 Python 中的类和函数

转载 作者:太空宇宙 更新时间:2023-11-03 15:29:13 24 4
gpt4 key购买 nike

我正在编写一个使用遗传技术来演化方程式的程序。我希望能够将函数“mainfunc”提交给并行 Python“提交”函数。函数“mainfunc”调用 Utility 类中定义的两个或三个方法。它们实例化其他类并调用各种方法。我想我想要的是将所有这些都放在一个 NAMESPACE 中。所以我在函数“mainfunc”中实例化了一些(也许应该是全部)类。我将 Utility 方法称为“generate()”。如果我们要遵循它的执行链它将涉及代码中的所有类和方法。

现在,方程式存储在树中。每次生成、变异或交叉一棵树bred,需要给节点一个新的键,这样它们就可以从树的字典属性中访问。 “KeySeq”类生成这些 key 。

在并行 Python 中,我将发送多个“mainfunc”实例到 PP 的“提交”函数。每个人都必须能够访问“KeySeq”。如果它们都访问相同的 KeySeq 实例,这样返回的树上的所有节点都没有相同的 key ,那就太好了,但如果需要,我可以解决这个问题。

所以:我的问题是关于将所有内容都填充到 mainfunc 中。谢谢(编辑)如果我没有在 mainfunc 中包含所有内容,我必须通过在各个地方传递各种参数来尝试告诉 PP 关于依赖函数等。我正在努力避免这种情况。

(后期编辑)如果在'generate() 函数中调用 ks.next(),它会返回错误'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)

最佳答案

以这种方式构建您的程序很好。许多命令行实用程序都遵循相同的模式:

#imports, utilities, other functions

def main(arg):
#...

if __name__ == '__main__':
import sys
main(sys.argv[1])

这样您就可以通过导入另一个模块来调用 main 函数,或者您可以从命令行运行它。

关于python - 构建程序。 Python 中的类和函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1561282/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com