Khi thực thi một chương trình cỡ vừa hoặc lớn, hay là một dự án nào đó, điều gì sẽ xảy ra nếu bạn hiện thực toàn bộ code vào một file duy nhất? Trong thực tế, một lập trình viên chuyên nghiệp sẽ không bao giờ làm như vậy cả. Bởi chính điều đó sẽ gây khó khăn cho họ trong quá trình hiện thực và bảo trì về sau. Để khắc phục việc đó, họ sử dụng modules cho các chương trình, dự án của họ. Bài viết giới thiệu về modules trong python cũng như cách sử dụng của nó.
Modules là gì?
Trong Python, một file mã nguồn (có đuôi mở rộng .py) được gọi là một module. Pytthon hỗ trợ lập trình viên xuất các biến, hàm của một module từ những modules khác.
Ví dụ sau tôi thực hiện viết một hàm tính tổng 2 số nguyên (hàm sum) trong file module_test.py
def sum(a, b):
return a + b
Tôi tiến hành sử dụng hàm trên trong một module khác (file main.py)
import module_test
print (module_test.sum(1, 7))
Kết quả in ra màn hình
8
Import modules
Nhìn lại ví dụ trên bạn sẽ dễ dàng nhận thấy là để có thể sử dụng tài nguyên từ các modules bạn cần phải import chúng vào module bạn đang thực hiện. Python cung cấp cho ta 2 cách để có thể import modules.
- Modules import.
- Function import.
Modules import
Modules import, bạn có thể hiểu đây là một cách import tổng quát - import nguyên một hoặc nhiều modules thông qua tên của nó và có thể tuỳ ý sử dụng bất kỳ biến, hàm nào trong modules đó.
Cú pháp
import module1[, module2[,... moduleN]
Trong đó
- import là từ khoá cần thiết để import modules vào.
- module1, module2,..., moduleN là tên các modules cần truyền vào.
Truy xuất
Như bạn thấy ở ví dụ trên, các tài nguyên bên trong modules sẽ được truy xuất thông qua bên bởi dấu chấm (.).
Ví dụ
import module_test
print (module_test.sum(1, 7))
Function import
Function import cho phép bạn import một hoặc nhiều hàm trong modules, và chỉ được sử dụng các hàm mà nó đã được import.
Cú pháp
from module import function1[, function2[, ... functionN]]
Trong đó
- module là tên module có chứa các hàm mà bạn cần import.
- function1, function2,... , functionN là tên hàm cần import.
Truy xuất
Với cách import này, bạn có thể sử dụng tên hàm một cách thoải mái mà không cần phải thông qua tên của module chứa nó.
Ví dụ
from module_test import sum
print (sum(1, 7))
Lưu ý: Dễ dàng nhận thấy rằng khi dùng cách 2 bạn sẽ gọi hàm nhanh hơn so với cách 1. Tuy nhiên, vấn đề sẽ nảy sinh khi tồn tại 2 hàm cùng tên nằm trong 2 modules khác nhau. Vì vậy bạn cần cân nhắc khi lựa chọn cách import một modules nào đó để đạt hiệu quả cao nhất.