0

我有一个使用 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)
4

1 回答 1

0

是的,您可以在 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')

于 2021-07-12T11:05:11.553 回答