gpt4 book ai didi

python - 嵌套函数调用总是在一起

转载 作者:行者123 更新时间:2023-12-01 00:46:33 25 4
gpt4 key购买 nike

我有几个函数可以保存我的程序使用的各种全局变量。它们总是一起调用,因此我创建了一个函数来调用它们,如下所示:

def save_reflector(rf):
with open('reflector.txt.',mode='w') as f:
for num in rf:
f.write(str(num)+'\n')

def save_rotors(r1,r2,r3,rpos1,rpos2,rpos3):
with open('rotors.txt.',mode='w') as f:
f.write(str(rpos1)+'\n')
for num in r1:
f.write(str(num)+'\n')

f.write(str(rpos2)+'\n')
for num in r2:
f.write(str(num)+'\n')

f.write(str(rpos3)+'\n')
for num in r3:
f.write(str(num)+'\n')

def save_wiring(wr):
with open('wiring.txt.',mode='w') as f:
for num in wr:
f.write(str(num)+'\n')

def save_machine(r1,r2,r3,rpos1,rpos2,rpos3,wr,rf,v = None):#use v for verbose option
if v is not None:
print('Saving rotors...')
save_rotors(r1,r2,r3,rpos1,rpos2,rpos3)
print('Saving wiring...')
save_wiring(wr)
print('Saving reflector')
save_reflector(rf)
print('Machine Successfully saved')
else:
save_rotors(r1,r2,r3,rpos1,rpos2,rpos3)
save_wiring(wr)
save_reflector(rf)

因此,我总是一起调用这些函数,而不是单独调用。这就是为什么我想到只要有一个函数就可以调用所有这些函数。但这需要我将变量从外部函数传递到内部函数两次(这可能效率较低?),并且当我可以将它们全部键入时,这并不是完全必要的。然而,在我的主循环中使用时,save_machine() 看起来更好、更Pythonic。

我不确定哪个更Pythonic或更高效,所以任何建议都值得赞赏。

最佳答案

这种聚类的最终目的是服务于代码的可读性和可维护性。由于您的业务流程要求这三个函数作为一个易于命名的流程步骤save machine按顺序调用,因此将其包装在一个函数中是非常有意义的。这不仅更加 Pythonic,而且在几乎所有应用程序中都具有相同的意义,无论语言如何。

这可以消除调用程序中的困惑,并减少后续开发在处理此步骤时出错的机会。您已将调用程序中的大约十行代码减少到只有一行代码——函数调用。

关于python - 嵌套函数调用总是在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56939005/

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