抽象通用shell设置功能的Python方式



我有多个函数,基本上可以触发shell并运行一些命令。它们都共享相似的shell设置代码块
在以下示例中,抽象重复shell设置代码的Python方法是什么
我提出的解决方案是使用安装装饰器,还有其他有效的选择吗?

''

def status():
shell = setup_shell()
with shell.run_shell():
wait_shell_timeout(shell)
shell.initial_setup()
shell.get_stuff()
shell.status()

def restore(module_name):
shell = setup_shell()
with shell.run_shell():
wait_shell_timeout(shell)
shell.initial_setup()
shell.get_stuff()
shell.restore(module_name)

def update(module_name):
shell = setup_shell()
with shell.run_shell():
wait_shell_timeout(shell)
shell.initial_setup()
shell.get_stuff()
shell.update(module_name)

''

当然有很多方法可以实现这一点。装饰器可能是python倡导者最喜欢的。从长远来看,这在一定程度上取决于您可能想要使用/理解代码的人。

另一个选项是回调函数:

def shell_function(routine, *args):
shell = setup_shell()
with shell.run_shell():
wait_shell_timeout(shell)
shell.initial_setup()
shell.get_stuff()
routine(shell, *args)
shell_function(Shell.status)
shell_function(Shell.restore, module_name)

对于那些对装饰师不太了解,但在幕后工作原理有点类似的新手来说,这可能更容易理解发生了什么。

最后:了解你的目标受众。

最新更新