Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Package trong Python: Có gì khác với module
Trong bài này chúng ta sẽ tìm hiểu package trong Python, đây là phương pháp quản lý các module theo package, giúp việc xây dựng cấu trúc của ứng dụng Python trở nên đơn giản hơn rất nhiều.
Trong bài module mình đã hướng dẫn bạn cách tạo một module đơn giản trong Python, và nó nằm cùng cấp thư mục với file chính của chương trình. Giả sử trường hợp bạn tạo ra 100 modules thì phải tạo ra 100 files, như vậy việc quản lý các modules sẽ rất phức tạp.
Để đơn giản hóa thì trong Python xuất hiện thêm khái niệm package. Chi tiết thế nào thì chúng ta cùng tìm hiểu ngay nhé.
1. Package trong Python là gì?
Package là cách tạo ra các gói và mỗi gói sẽ chứa những module liên quan với nhau. Phương pháp này giúp việc phân chia modules trong Python một cách dễ dàng.
Bài viết này được đăng tại [free tuts .net]
Bạn có thể hiểu một package giống như folder trong máy tính vậy. Bên trong folder này có thể chứa thêm một folder khác (tức là package khác), và cũng có thể chứa thêm những file khác (tức là các modules).
Hình ảnh dưới đây là cấu trúc của package Game.
Như bạn thấy:
- Bên trong Game có thêm 3 package con là Sound, Image, Level
- Bên trong 3 package con này chứa các module có liên quan với nhau.
Điều đặc biệt là mỗi package bắt buộc phải có file __init__.py
, đây là file được gọi đầu tiên mỗi khi bạn import package nó vào chương trình. Nếu bạn đã học lập trình hướng đối tượng thì file này giống như hàm khởi tạo của một lớp vậy đó.
2. Thực hành tạo một package trong Python
Giả sử mình cần tạo package có tên là Store.
Như bạn thấy trong hình, mình đã tạo một folder Store và một file __init__.py
, bây giờ mình sẽ viết code trong file này như sau:
print("Bạn đã load package Store")
Để gọi đến package này trong file helloworld.py
thì ta sử dụng lệnh sau
import Store
Chạy lên bạn sẽ nhận được kết quả như sau:
Như vậy đoạn code trong file __init__.py
đã tự động được gọi.
3. Tạo module trong Package Python
Để tạo một module nằm trong một package A thì bạn chỉ việc tạo file module_name.py
nằm trong thư mục package A
là được.
Giả sử mình cần tạo module computer.py
nằm trong package Store
thì cấu trúc sẽ như sau:
Tạo một hàm trong package computer như sau:
def showComputerMsg(msg): print(msg)
Bây giờ để sử dụng package computer trong file helloworld.py
thì ta sử dụng lệnh import như sau:
import Store.computer Store.computer.showComputerMsg('Máy tính của Freetuts.net')
Hoặc sử dụng lệnh from ... import như sau:
from Store import computer computer.showComputerMsg('Máy tính của Freetuts.net')
4. Tạo package bên trong một package khác
Package trong Python có thể tạo chồng lên nhau. Ví dụ trong package A bạn muốn chia thành 2 package nhỏ là B và C thì hoàn toàn được, bằng cách sử dụng cấu trúc sub folder như phần 1.
Điều lưu ý duy nhất là mỗi package bắt buộc phải có file __init__.py
nhé.
packageA __init__.py packageB __init__.py packageC __init__.py
Và để truy xuất đến các package này thì chỉ việc sử dụng dấu chấm để nối giữa các package là được.
Ví dụ: Giả sử mình có cấu trúc package như sau trong một ứng dụng Python.
Store __init__.py Computer __init__.py Ram __init__.py raminfor.py
Lúc này để gọi đến module raminfor thì ta sử dụng cú pháp sau:
import Store.Computer.Ram.raminfor
Các cách gọi khác thì tương tự như phần 3 nhé.
Như vậy là qua bài này bạn đã biết cách sử dụng package trong Python rồi nhỉ. Mình hy vọng bạn hiểu được các vấn đề sau:
- Cách tạo và gọi đến các package
- Hiểu ý nghĩa của file __init__.py trong Python
- Và nhiều kiến thức liên quan khác.