-3
Pythonクラスの多くの努力の後、私のコードは期待通りに動作します。Pythonクラスの繰り返しコードを避ける方法
しかし、私は私のスクリプト内のすべての場所でコードの下に使用:
buff = ''
while not buff.endswith('#'):
resp = self.remote_conn.recv(9999)
buff += resp
print resp
いずれかが上記のコードを複数回使用しないように私を助けてくださいすることができ、以下のコードで
class Asr:
def __init__(self):
''' SSH connection Establish '''
self.hostname = hostname
self.net_username = net_username
self.net_password = net_password
def remote(self):
self.remote_conn_pre = paramiko.SSHClient()
self.remote_conn_pre.set_missing_host_key_policy(
paramiko.AutoAddPolicy())
self.remote_conn_pre.connect(self.hostname, username=self.net_username, password=self.net_password, look_for_keys=False, allow_agent=False)
self.remote_conn = self.remote_conn_pre.invoke_shell()
def disable_paging(self):
self.remote_conn.send("terminal length 0\n")
def inventory(self):
self.remote()
self.remote_conn.send("\n")
self.remote_conn.send("ping 1.1.1.1\n")
buff = ''
while not buff.endswith('#'):
resp = self.remote_conn.recv(9999)
buff += resp
print resp
self.remote_conn.send("ping 1.1.1.1\n")
buff = ''
while not buff.endswith('#'):
resp = self.remote_conn.recv(9999)
buff += resp
print resp
self.remote_conn.send("ping 1.1.1.1\n")
buff = ''
while not buff.endswith('#'):
resp = self.remote_conn.recv(9999)
buff += resp
print resp
self.remote_conn.close()
def version(self):
self.remote()
self.remote_conn.send("\n")
self.remote_conn.send("ping 1.1.1.1\n")
buff = ''
while not buff.endswith('#'):
resp = self.remote_conn.recv(9999)
buff += resp
print resp
self.disable_paging()
self.remote_conn.send("show inventory\n")
buff = ''
while not buff.endswith('#'):
resp = self.remote_conn.recv(9999)
buff += resp
print resp
self.remote_conn.close()
asr = Asr()
asr.inventory()
asr.version()
umm ..関数を作成しますか? – Pythonista
make関数が動作していないと何らかの理由で私が知りません。パラミコが切断されているということです。パラミコレベルで何が起こっているのかを試してみましょう – kitty
追加の励ましと理論的根拠については、https://stackoverflow.com/questions/26785952/python-argparse-as-a-function/26786146#26786146を参照してください。 –