问题描述
我有一个使用 netmiko 的函数脚本,我想为 send_command 创建一个函数,但我真的不知道该怎么做。
def estb_conn(ip,uname,pname,instruct):
cisco_ios = {
'device_type': 'cisco_ios','ip': ip,'username': uname,'password': pname,}
ios_connect = netmiko.ConnectHandler(**cisco_ios)
display = ios_connect.find_prompt()
**** 我想把这个 send_command 作为新函数,这样我就可以自由地 当我需要多个命令或 for 循环时在任何地方调用它****
command = ios_connect.send_command(instruct)
time.sleep(1)
解决方法
是的,您可以在 Python 中创建新函数。你甚至可以随心所欲(这叫做部分应用和闭包)。
def netmiko_partial_from_stackoverflow (ip,uname,pname):
cisco_ios = {
'device_type': 'cisco_ios','ip': ip,'username': uname,'password': pname,}
ios_connect = netmiko.ConnectHandler(**cisco_ios)
display = ios_connect.find_prompt()
def inner_function_from_stackoverflow(instruct):
res = ios_connect.send_command(instruct)
time.sleep(1)
return res
之后你可以这样使用它:
mycommand_from_stackoverflow = netmiko_partial_from_stackoverflow(someip,someuname,somepnmae)
mycommand_from_stackoverflow('show running-config')
mycommand_from_stackoverflow('show inferfaces')