创建函数还是从 paramiko class 继承?
Create functions or inherit from paramiko class?
我必须使用 ssh 连接到多个服务器,并在脚本的不同点为每个服务器执行不同的命令。
这是我正在使用的 ssh 连接代码:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect( host, key_filename=keypriv, timeout=10)
stdin, stdout, stderr = ssh.exec_command("vgdisplay -v -F | grep -v 'vg_status=deactivated'")
vgdata = stdout.readlines()
因为我要打开几个连接并执行几个命令。我正在考虑创建一个新的 class 继承自 paramiko 并添加一些功能(创建、关闭和执行)或创建一个新的 class 而不继承自 paramiko。
有什么 pythonist 方法可以解决这个问题吗?
我认为您必须在这里问自己的问题是“Composition over Inheritance”?
这个问题基本上归结为问自己是"has a"关系还是"is-a"关系。在你的情况下,这是一个 "has a" 关系,因为你正在创建的 class 正在做一些事情 with paramiko 连接,而不是 as 连接。
我不完全确定这些 create
、execute
和 close
方法会做什么,但这对我来说听起来像是 "connection manager" 或一些便利方法,我认为组合是正确的选择。
我必须使用 ssh 连接到多个服务器,并在脚本的不同点为每个服务器执行不同的命令。
这是我正在使用的 ssh 连接代码:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect( host, key_filename=keypriv, timeout=10)
stdin, stdout, stderr = ssh.exec_command("vgdisplay -v -F | grep -v 'vg_status=deactivated'")
vgdata = stdout.readlines()
因为我要打开几个连接并执行几个命令。我正在考虑创建一个新的 class 继承自 paramiko 并添加一些功能(创建、关闭和执行)或创建一个新的 class 而不继承自 paramiko。
有什么 pythonist 方法可以解决这个问题吗?
我认为您必须在这里问自己的问题是“Composition over Inheritance”?
这个问题基本上归结为问自己是"has a"关系还是"is-a"关系。在你的情况下,这是一个 "has a" 关系,因为你正在创建的 class 正在做一些事情 with paramiko 连接,而不是 as 连接。
我不完全确定这些 create
、execute
和 close
方法会做什么,但这对我来说听起来像是 "connection manager" 或一些便利方法,我认为组合是正确的选择。