Python – Package

4.2/5 - (11 votes)

Trong bài này chúng ta sẽ tìm hiểu về gói (Package) trong Python.

Một package đơn giản là một thư mục chứa các module có liên quan với nhau, trong thư mục này có một file đặc biệt tên là __init__.py.

Như trong bài trước chúng ta đã biết trong Python có các cách sau để quản lý code:

  • Dùng hàm
  • Dùng lớp
  • Dùng module
  • Dùng package

Nếu chương trình của chúng ta đủ lớn (cỡ hàng trăm module) thì chúng ta nên dùng package.

Để tạo một package thì bạn làm những bước sau đây:

  • B1: Tạo một thư mục với tên package mà bạn muốn đặt
  • B2: Trong thư mục đó tạo một file có tên __init__.py
  • B3: Đặt các module mà bạn viết vào thư mục đó

Bất cứ thư mục nào chứa file __init__.py sẽ sẽ trở thành một package của Python.

Ví dụ: mình tạo một folder với tên constantstrong file này mình tạo file __init__.py và một module có tên names (file có tên names.py)

test_package.py
constants/
          __init__.py
          names.py 
print ("Package names initialized!")
names = ('Jack', 'Jessica', 'Robert', 'Lucy', 'Tom')

Vậy là bạn đã tạo xong package constants rồi. Bây giờ chúng ta sẽ tạo một file script Python ở ngoài để dùng thử.

from constants import names
print (names.names)

Để sử dụng package thì bạn dùng câu lệnh import như dùng với module bình thường.

Package names initialized!
('Jack', 'Jessica', 'Robert', 'Lucy', 'Tom')

Bạn cũng có thể tạo một package trong một package hay còn gọi là các package con.

test_package.py
constants/
          __init__.py
          names.py 
          numbers/
                   __init__.py
                   integers.py

Trong ví dụ trên chúng tạo package numbers trong package constants. Bên trong package numbers có một module tên là integers.

print ("Package constants.numbers initialized")

Các file __init__.py bạn có thể để trống chứ không cần ghi gì trong đó cả.

integers = (2, 3, 45, 6, 7, 8, 9)

from constants import names
from constants.numbers import integers

print (names.names)
print (integers.integers)

Để import package con thì bạn dùng dấu chấm.

Package constants initialized!
Package constants.numbers initialized!
('Jack', 'Jessica', 'Robert', 'Lucy', 'Tom')
(2, 3, 45, 6, 7, 8, 9)

 

0 0 votes
Article Rating
Subscribe
Thông báo cho tôi qua email khi
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

1 Comment
Inline Feedbacks
View all comments
hoàng
hoàng
7 năm trước

tks anh, mặc dù đọc bài viết vẫn chưa lắm được nhiều