亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python: 裝飾器的小例子

發布時間:2020-07-23 04:42:25 來源:網絡 閱讀:365 作者:arckyli 欄目:編程語言

折騰了一天的裝飾器,貌似理解了其中的一點點...

#!/usr/bin/env python3
#coding=utf-8
import getpass
from netmiko import ConnectHandler
from netmiko.ssh_exception import NetMikoTimeoutException,NetMikoAuthenticationException

def auth(Conn):
    def wrapper(ip,username,password):
        device = {
                  'device_type': 'cisco_ios',
                  'ip': ip,
                  'username': username,
                  'password': password,
                }
        try:
            connect = ConnectHandler(**device)
            connect.enable()
        except (EOFError, NetMikoTimeoutException):
            print(u" 網絡設備%s:  無法連接!請確認該設備IPAddress是否可達!"%ip)  
            return
        except (EOFError, NetMikoAuthenticationException):
            print(u" 網絡設備%s:  用戶名與密碼錯誤!請確認賬號與密碼!" %ip)
            return
        Conn(ip,username,password,connect)    
        return Conn
    return wrapper

@auth
def showInterface(ip,username,password,connect):
    res = connect.send_command('show ip int brief')
    print(res)
    connect.disconnect()

@auth
def showVersion(ip,username,password,connect):
    res = connect.send_command('show version')
    print(res)
    connect.disconnect()
 

def main():
    print(u"選項請輸入數字,如: 1、2")
    print(u"1. 查詢設備接口信息")
    print(u"2. 查詢設備版本信息")
    print("")
    runFunc = int(input(u'請輸入需要執行命令的選項: '))
    input_ip   = input("IPAddress: ")
    ipaddress  = input_ip.split(",")
    username = input("Username: ")
    password = getpass.getpass()
    for ip in ipaddress:
        if runFunc == 1:    
            showInterface(ip,username,password)
        if runFunc == 2:
            showVersion(ip,username,password)

if __name__ == '__main__':
    main()

運執行上面的代碼,運行效果如下: 

Python: 裝飾器的小例子


以下代碼用類也可以實現相一樣的結果,可以對比一下那個方便

#!/usr/bin/env python3 
#coding=utf-8
import getpass
from netmiko import ConnectHandler
from netmiko.ssh_exception import NetMikoTimeoutException,NetMikoAuthenticationException

class NWBackup():
    def __init__(self):
        self.ip       = input('IPAddress:')
        self.username = input('Username:')
        self.password = getpass.getpass()
        self.device={'device_type': 'cisco_ios',
            'username': self.username,
            'password': self.password,
            'ip':self.ip
            }
        try:
            self.connect = ConnectHandler(**self.device)
            self.connect.enable()

        except (EOFError, NetMikoTimeoutException):
            print(u" 網絡設備%s:  無法連接!請確認該設備IPAddress是否可達!" %self.ip) 
            return
         
        except (EOFError, NetMikoAuthenticationException):
            sprint(u" 網絡設備%s:  用戶名與密碼錯誤!請確認賬號與密碼!" %self.ip)
            return

    def disVersion(self):
        cmd = 'show version'
        print(self.connect.send_command(cmd))
        self.connect.disconnect()


    def disInterface(self):
        cmd = 'show ip interface brief'
        print(self.connect.send_command(cmd))
        self.connect.disconnect()

    def runComment(self):
        disfunc = int(input('pls input num: '))
        if disfunc == 1:
            self.disVersion()
        if disfunc == 2:
            self.disInterface()

if __name__ == '__main__':
    run = NWBackup()
    run.runComment()


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

曲麻莱县| 周宁县| 盈江县| 项城市| 积石山| 乐安县| 太白县| 潼关县| 巴里| 五原县| 彩票| 沂南县| 昌邑市| 丰台区| 塘沽区| 雷山县| 新宁县| 门头沟区| 名山县| 惠安县| 犍为县| 双牌县| 宝坻区| 荔波县| 四子王旗| 大邑县| 安新县| 麻城市| 涿鹿县| 淮北市| 义马市| 宜君县| 两当县| 阿坝| 鄂伦春自治旗| 随州市| 浦城县| 兰溪市| 化德县| 泊头市| 金沙县|