/*auto readmore*/ /*auto readmore*/ /* an hien script*/ // an hien password /*an hien ma chuong trinh cong tru */ /*Scrollbox thanh cuon*/ /***Nhung CODE***/ /* dòng xanh dòng trắng */ /* https://cdnjs.com/libraries/prism lay thu vien, can vao ten file ma goi 1. copy link vao vi du:prism-python.min.js 2. ten ngon nua la python */ /*=== New posts ===*/ /*header slider*/ /*=== bai viet lien quan===*/ /*===tabcode===*/

Học Python Qua Ví Dụ #022 - Module Trong PyThon

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>


phần highlight màu vàng là các hàm chúng ta đã định nghĩa trong file vck_func.py

  • 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!


No comments:

Post a Comment

/*header slide*/