Cũng giống như Function, Module cho phép tái sử dụng code lại nhiều lần. Với Function thì các hàm phải được định nghĩa trước đó và sau đó gọi hàm ra mà dùng. Với Module nó bao gồm các lớp (class), các hàm (function), các biến,...mà chúng ta đã gom/phân thành từng module. Khi sử dụng nó chúng ta chỉ cần IMPORT nó vào mà sử dụng KHÔNG CẦN phải viết lại.
Ví dụ chúng ta có file vck_func.py với nội dung:
import re
def MAC_Win2Cisco(mac_addr):
'''
chuyển định dạng MAC address của Windows sang định dạng Cisco
Dữ liệu đầu VÀO có dạng "11:22:33:44:55:66" HOẶC "11-22-33-44-55-66"
KẾT QUẢ:"1122.3344.5566"
'''
mac_addr = re.sub("[-:]","",mac_addr)
new_mac = []
while len(mac_addr) > 0:
entry = mac_addr [:4]
mac_addr = mac_addr [4:]
new_mac.append(entry)
new_mac = ".".join(new_mac)
return new_mac
def MAC_Cisco2Win(mac_addr):
'''
Chuyển định dạng MAC address của cisco sang windows
Dữ liệu vào:"1122.3344.5566"
KẾT QUẢ: "11:22:33:44:55:66"
'''
mac_addr = re.sub("[.]","",mac_addr)
new_mac = []
while len(mac_addr) > 0:
entry = mac_addr [:2]
mac_addr = mac_addr [2:]
new_mac.append(entry)
new_mac = ":".join(new_mac)
return new_mac
def ipv4_chk(ip_addr):
'''
Kiểm tra ip nhập vào có hợp lệ không
IP hợp lệ phải có 4 otects
Mỗi otect phải là số trong khoảng [0-255]
'''
octets = ip_addr.split(".")
if len(octets) != 4:
return False
for x in octets:
if not x.isdigit() or int(x) < 0 or int(x) > 255:
return False
return True
Để sử dụng các hàm trên chúng ta thực hiện:
- Import vck_func
- Dùng hàm dir để xem trong file vck_func có những hàm nào
import vck_func
print(dir(vck_func))
kết quả:
C:\python>python Demo.py
['MAC_Cisco2Win', 'MAC_Win2Cisco', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'ipv4_chk', 're']
C:\python>
- Ví dụ sử dụng hàm MAC_Win2Cisco
Cách 1: gọi gián tiếp, cú pháp import <tên file thư viện cần import>
Code:
import vck_func
Mac_Cisco = vck_func.MAC_Win2Cisco("aa:cc:bb:dd:ee:ff")
print(Mac_Cisco)
Kết quả:
C:\python>python Demo.py
aacc.bbdd.eeff
C:\python>
Cách 2: Gọi trực tiếp, cú pháp from <tên file thư viện cần import> import <tên hàm, hoặc class>
from vck_func import MAC_Win2Cisco
Mac_Cisco = MAC_Win2Cisco("aa:cc:bb:dd:ee:ff")
print(Mac_Cisco)
Tùy từng trường hợp mà chúng ta có thể dùng cách 1 hoặc cách 2
Xong!