我正在开发一个程序,该程序对渗滤系统进行蒙特卡罗模拟(使用python)。为了能够从GUI(tkinter)运行它并使用多个进程,我在main()函数中定义了模拟的主要部分。问题是,这个程序是一个物理模拟,它需要很多参数(10+)。从main()调用的一些函数也需要很多参数,并且会被多次调用。例如,在我的main()中,我有一个generate_wire()函数,它接受8个参数,例如wires_mean_length、wires_distribution等。这个函数被调用了数百万次
这会影响项目的效率吗?这是应该修复的吗?如果是,如何修复
编辑:代码的结构基本如下:
def generate_wire("8 parameters"):
"generating a wire according to the parameters"
def main("main parameters"):
for _ in range(nbr_sim):
while True:
generate_wire("8 parameters taken from the main parameters")
"Various calculations"
if percolation is True:
break
if __name__ == '__main__':
"GUI code"
"Run button calls the main function with parameters from GUI entries"
实际上,与其他设计相比,这不会影响程序的运行时间
您可以将所有参数放入字典或自定义类中,并传递这些参数,以使逻辑更清晰
您可以将函数中的逻辑直接提升到循环中,这样可以减少查找的次数
More about local variable lookups
然而,改进设计将是您在这里的真正盟友
而不是在循环中调用成千上万次相同的函数,考虑
.apply
方法就是这样做的)相关问题 更多 >
编程相关推荐