Functon/Hàm: Thay vì chúng ta sử dụng các hàm đã được định nghĩa của python thì bây giờ chúng ta có thể TỰ ĐỊNH NGHĨA ra các hàm riêng cho mình. Hàm có tác dụng vô cùng quan trọng là tránh việc phải lặp lại nhiều lần một đoạn code để thực thi những tác vụ tương tự nhau, giúp code gọn hơn và có thể tái sử dụng.
- Ví dụ SSH Connection
Code:
def ssh_conn(ip_addr, username, password):
print("-" * 30)
print("IP Addr: {}".format(ip_addr))
print("Username: {}".format(username))
print("Password: {}".format(password))
print("-" * 30)
'''
Với cách gọi này hàm ssh_conn sẽ hành xử là gán THEO THỨ TỰ từ trái sang -> phải:
- giá trị: "192.168.1.1" sẽ gán vào biến ip_addr
- giá trị:"admin" sẽ gán vào biến username
- giá trị: "cisco123" sẽ gán vào biến password
'''
ssh_conn("192.168.1.1", "admin", "cisco123")
'''
khai báo biến KHÔNG cần theo THỨ TỰ, nó sẽ tìm đúng biến mà gán vào
'''
ssh_conn(username="admin", ip_addr="192.168.1.1", password="cisco123")
# Cũng có thể gọi theo kiểu KẾT HỢP 2 cách trên
ssh_conn("192.168.1.1", password="cisco123", username="admin1")
Kết quả:
C:\python>python Demo.py------------------------------
IP Addr: 192.168.1.1
Username: admin
Password: cisco123
------------------------------
------------------------------
IP Addr: 192.168.1.1
Username: admin
Password: cisco123
------------------------------
------------------------------
IP Addr: 192.168.1.1
Username: admin1
Password: cisco123
------------------------------
C:\python>python Demo.py
------------------------------
IP Addr: 192.168.1.1
Username: admin
Password: cisco123
------------------------------
------------------------------
IP Addr: 192.168.1.1
Username: admin
Password: cisco123
------------------------------
------------------------------
IP Addr: 192.168.1.1
Username: admin1
Password: cisco123
------------------------------
C:\python>
- Ví dụ SSH Connection 2
Code:
def ssh_conn2(ip_addr, username, password, device_type="cisco_ios"):
print("-" * 30)
print("IP Addr: {}".format(ip_addr))
print("Username: {}".format(username))
print("Password: {}".format(password))
print("Platform: {}".format(device_type))
print("-" * 30)
ssh_conn2(
"192.168.1.1", password="cisco123", username="admin1", device_type="cisco_nxos"
)
'''
Khi gọi hàm nếu không truyền giá trị của device_type vào thì nó sẽ lấy giá trị mặc định
Trong trường hợp này giái trị mặc định là: device_type="cisco_ios"
'''
ssh_conn2("192.168.1.1", password="cisco123", username="admin1")
'''
Chúng ta có thể định nghĩa Dictionary rồi gọi thông qua các key và value của dictionary
'''
my_device = {
"ip_addr": "172.16.1.1",
"device_type": "cisco_xr",
"username": "admin",
"password": "cisco123",
}
# hai dấu ** ngầm ý là cho phép truyền key và value của my_device vào hàm ssh_conn2
ssh_conn2(**my_device)
Kết quả:
C:\python>python Demo.py------------------------------IP Addr: 192.168.1.1
Username: admin1
Password: cisco123
Platform: cisco_nxos
------------------------------
------------------------------
IP Addr: 192.168.1.1
Username: admin1
Password: cisco123
Platform: cisco_ios
------------------------------
------------------------------
IP Addr: 172.16.1.1
Username: admin
Password: cisco123
Platform: cisco_xr
------------------------------
C:\python>
Tham khảo hàm trả về nhiều giá trị
Xong!