Python - Mô-đun

Xin chào các nhà siêu anh hùng Python tương lai! Hôm nay, chúng ta sẽ bắt đầu cuộc hành trình đầy kỳ diệu vào thế giới mô-đun Python. Đừng lo nếu bạn mới bắt đầu học lập trình; tôi sẽ là người hướng dẫn bạn thân thiện, giải thích mọi thứ từng bước. Vậy, hãy nhấn tay vào cây cơ (bàn phím) của bạn và bắt đầu nhé!

Python - Modules

Các Mô-đun Python

Hãy tưởng tượng bạn đang xây dựng một lâu đài phép thuật (chương trình của bạn). Thay vì xây dựng mọi thứ từ đầu, có lẽ nó sẽ rất tuyệt vời nếu bạn có các tháp, tường và cổng được xây sẵn sẵn mà bạn chỉ cần ghép vào chỗ? Đó chính là điều gì mô-đun trong Python - là mã đã được viết sẵn mà bạn có thể dễ dàng sử dụng trong chương trình của mình.

Các Mô-đun Đều Khoá

Python đi kèm với một chiếc rương đồ kỳ diệu của các mô-đun đều khoá. Đây như những phép thuật miễn phí mà bạn có thể sử dụng ngay lập tức. Hãy thử một cái nhé!

import random

# Tạo một số ngẫu nhiên từ 1 đến 10
magic_number = random.randint(1, 10)
print(f"Số kỳ diệu của bạn là: {magic_number}")

Trong ví dụ này, chúng ta sử dụng mô-đun random để tạo một số ngẫu nhiên. Nó như một con thỏ ra khỏi một chiếc mũ, nhưng với số!

Các Mô-đun Định Nghĩa Bởi Người Dùng

Mặc dù các mô-đun đều khoá rất tuyệt vời, đôi khi bạn cần phải tạo ra các phép thuật của riêng mình. Đó là nơi các mô-đun định nghĩa bởi người dùng trở nên hữu ích.

Tạo Một Mô-đun Python

Hãy tạo một mô-đun đơn giản có tên là magic_spells.py:

# magic_spells.py

def levitate(object):
return f"{object} đang bay trên không!"

def disappear(object):
return f"{object} đã biến mất trong không gian!"

Bây giờ chúng ta có một mô-đun của riêng mình với hai hàm kỳ diệu!

Câu Lệnh import

Để sử dụng mô-đun mới tạo của chúng ta, chúng ta cần nhập nó:

import magic_spells

# Sử dụng các hàm từ mô-đun của chúng ta
print(magic_spells.levitate("sách"))
print(magic_spells.disappear("thỏ"))

Output:

sách đang bay trên không!
thỏ đã biến mất trong không gian!

Câu Lệnh from ... import

Đôi khi, bạn chỉ cần các phép thuật cụ thể từ một mô-đun. Đó là nơi from ... import trở nên hữu ích:

from magic_spells import levitate

# Bây giờ chúng ta có thể sử dụng levitate trực tiếp mà không cần tiền tố magic_spells
print(levitate("ghế"))

Output:

ghế đang bay trên không!

Câu Lệnh from...import *

Nếu bạn muốn nhập tất cả các phép thuật từ một mô-đun, bạn có thể sử dụng from...import *:

from magic_spells import *

# Bây giờ chúng ta có thể sử dụng tất cả các hàm trực tiếp
print(levitate("bàn"))
print(disappear("mũ"))

Tuy nhiên, hãy cẩn thận với điều này! Nó như mở chiếc hộp Pandora - bạn có thể nhầm lẫn ghi đè lên các hàm hiện có nếu chúng có cùng tên.

Câu Lệnh import ... as

Đôi khi, tên của mô-đun có thể quá dài hoặc gây hiểu lầm. Bạn có thể đặt biệt danh cho nó bằng cách sử dụng import ... as:

import magic_spells as spells

print(spells.levitate("bút"))

Định Vị Mô-đun

Python tìm kiếm mô-đun ở nhiều nơi:

  1. Thư mục hiện tại
  2. PYTHONPATH (nếu được thiết lập)
  3. Thư mục mặc định phụ thuộc vào cài đặt

Biến PYTHONPATH

PYTHONPATH như một bản đồ kỳ diệu kể Python nơi tìm thêm các mô-đun. Bạn có thể thiết lập nó trong các biến môi trường của hệ thống.

Namespaces và Scoping

Hãy tưởng tượng namespace như các vương quốc khác nhau trong thế giới phép thuật của bạn. Mỗi mô-đun có namespace riêng, ngăn chặn xung đột giữa các hàm hoặc biến có tên tương tự.

Các Thuộc Tính của Mô-đun

Các mô-đun có các thuộc tính đặc biệt. Hãy khám phá một số:

import magic_spells

print(magic_spells.__name__)  # In ra tên của mô-đun
print(magic_spells.__file__)  # In ra đường dẫn tệp của mô-đun

Thuộc tính name

Thuộc tính __name__ rất đặc biệt. Nó là __main__ khi script được chạy trực tiếp, và là tên của mô-đun khi được nhập.

# Trong magic_spells.py, thêm:
if __name__ == "__main__":
print("Mô-đun này đang được chạy trực tiếp")
else:
print("Mô-đun này đang được nhập")

Hàm dir()

Hàm dir() như một gương kỳ diệu hiển thị tất cả các tên được định nghĩa trong mô-đun:

import magic_spells

print(dir(magic_spells))

Hàm reload()

Nếu bạn thay đổi gì đó trong mô-đun và muốn tải lại nó mà không cần khởi động lại Python, bạn có thể sử dụng reload():

from importlib import reload
import magic_spells

# Thay đổi gì đó trong magic_spells.py
reload(magic_spells)

Các Gói trong Python

Các gói như những cuốn sách phép chứa nhiều mô-đun. Chúng chỉ là các thư mục với một tệp __init__.py đặc biệt.

Dưới đây là bảng tóm tắt các phương thức nhập mà chúng ta đã học:

Phương thức Cú pháp Ví dụ
Import cơ bản import module_name import magic_spells
From Import from module_name import function_name from magic_spells import levitate
Import All from module_name import * from magic_spells import *
Import as Alias import module_name as alias import magic_spells as spells

Và đó là thế, các học viên! Bạn vừa học được các khái niệm cơ bản về mô-đun Python. Hãy nhớ, luyện tập là chìa khóa để thành công, vì vậy hãy tiếp tục thử nghiệm các mô-đun khác nhau và tạo ra thế giới Python kỳ diệu của riêng bạn. Chúc bạn mãi mãi hạnh phúc khi lập trình!

Credits: Image by storyset