Thứ tư, 01/02/2017 | 00:00 GMT+7

Cách khai báo module trong Python 3

Ngôn ngữ lập trình Python đi kèm với nhiều hàm tích hợp sẵn . Trong số này có một số chức năng phổ biến, bao gồm:

  • print() in ra các biểu thức
  • abs() trả về giá trị tuyệt đối của một số
  • int() chuyển đổi kiểu dữ liệu khác thành số nguyên
  • len() trả về độ dài của một chuỗi hoặc tập hợp

Tuy nhiên, các chức năng tích hợp này có giới hạn và ta có thể sử dụng các module để tạo ra các chương trình phức tạp hơn.

Mô-đun là các file .py Python bao gồm mã Python. Các file Python nào cũng có thể được tham chiếu dưới dạng module . Tệp Python được gọi là hello.py có tên module là hello có thể được nhập vào các file Python khác hoặc được sử dụng trên trình thông dịch dòng lệnh Python. Bạn có thể tìm hiểu về cách tạo module của riêng mình bằng cách đọc Cách viết module trong Python 3 .

Mô-đun có thể xác định các hàm , lớpbiến mà bạn có thể tham chiếu trong các file .py Python khác hoặc thông qua trình thông dịch dòng lệnh Python.

Trong Python, các module được truy cập bằng cách sử dụng câu lệnh import . Khi bạn làm điều này, bạn thực thi mã của module , giữ lại phạm vi của các định nghĩa để (các) file hiện tại của bạn có thể sử dụng chúng.

Ví dụ, khi Python nhập một module có tên hello , trình thông dịch trước tiên sẽ tìm kiếm một module tích hợp có tên hello . Nếu không tìm thấy module tích hợp sẵn, trình thông dịch Python sau đó sẽ tìm kiếm file có tên hello.py trong danh sách các folder mà nó nhận được từ biến sys.path .

Hướng dẫn này sẽ hướng dẫn bạn cách kiểm tra và cài đặt module , khai báo module và module alias .

Kiểm tra và Cài đặt Mô-đun

Có một số module được tích hợp sẵn trong Thư viện tiêu chuẩn Python , chứa nhiều module cung cấp quyền truy cập vào chức năng hệ thống hoặc cung cấp các giải pháp tiêu chuẩn hóa. Thư viện chuẩn Python là một phần của mọi cài đặt Python.

Để kiểm tra xem các module Python này đã sẵn sàng hoạt động hay chưa, hãy nhập vào môi trường lập trình Python 3 local của bạn hoặc môi trường lập trình dựa trên server và khởi động trình thông dịch Python trong dòng lệnh của bạn như sau:

  • python

Từ bên trong trình thông dịch, bạn có thể chạy câu lệnh import đảm bảo rằng module đã cho sẵn sàng được gọi, như trong:

  • import math

math là một module tích hợp sẵn, trình thông dịch của bạn sẽ hoàn thành nhiệm vụ mà không có phản hồi, quay lại dấu nhắc . Điều này nghĩa là bạn không cần phải làm bất cứ điều gì để bắt đầu sử dụng module math .

Hãy chạy câu lệnh import với một module mà bạn có thể chưa cài đặt, như thư viện vẽ đồ thị 2D matplotlib :

  • import matplotlib

Nếu matplotlib chưa được cài đặt, bạn sẽ gặp lỗi như sau:

Output
ImportError: No module named 'matplotlib' 

Bạn có thể hủy kích hoạt trình thông dịch Python bằng CTRL + D và sau đó cài đặt matplotlib bằng pip .

Tiếp theo, ta có thể sử dụng pip để cài đặt module matplotlib :

  • pip install matplotlib

Khi nó được cài đặt, bạn có thể nhập matplotlib trong trình thông dịch Python bằng cách sử dụng import matplotlib và nó sẽ hoàn tất mà không có lỗi.

Khai báo module

Để sử dụng các chức năng trong một module , bạn cần khai báo module bằng một câu lệnh import .

Một câu lệnh import được tạo thành từ từ khóa import cùng với tên của module .

Trong file Python, điều này sẽ được khai báo ở đầu mã, dưới bất kỳ dòng shebang hoặc comment chung nào.

Vì vậy, trong file chương trình Python my_rand_int.py ta sẽ khai báo module random để tạo các số ngẫu nhiên theo cách sau:

my_rand_int.py
import random 

Khi ta nhập một module , ta đang cung cấp nó cho ta trong chương trình hiện tại của ta dưới dạng một không gian tên riêng biệt. Điều này nghĩa là ta sẽ phải tham chiếu đến hàm trong ký hiệu dấu chấm, như trong [module].[function] .

Trong thực tế, với ví dụ về module random , điều này có thể trông giống như một hàm chẳng hạn như:

  • random.randint() gọi hàm trả về một số nguyên ngẫu nhiên, hoặc
  • random.randrange() gọi hàm để trả về một phần tử ngẫu nhiên từ một phạm vi xác định.

Hãy tạo một vòng lặp for để hiển thị cách ta sẽ gọi một hàm của module random trong chương trình my_rand_int.py của ta :

my_rand_int.py
import random   for i in range(10):     print(random.randint(1, 25)) 

Chương trình nhỏ này đầu tiên khai báo module random trên dòng đầu tiên, sau đó chuyển sang vòng lặp for sẽ hoạt động với 10 phần tử. Trong vòng lặp, chương trình sẽ in ra một số nguyên ngẫu nhiên trong phạm vi từ 1 đến 25 (bao gồm cả). Các số nguyên 125 được chuyển đến random.randint() làm tham số của nó.

Khi ta chạy chương trình với python my_rand_int.py , ta sẽ nhận được 10 số nguyên ngẫu nhiên dưới dạng kết quả . Bởi vì những điều này là ngẫu nhiên, bạn có thể nhận được các số nguyên khác nhau mỗi khi bạn chạy chương trình, nhưng chúng sẽ trông giống như sau:

Output
6 9 1 14 3 22 10 1 15 9 

Các số nguyên không bao giờ được dưới 1 hoặc trên 25.

Nếu bạn muốn sử dụng các chức năng từ nhiều module , bạn có thể thực hiện bằng cách thêm nhiều câu lệnh import :

my_rand_int.py
import random import math 

Bạn có thể thấy các chương trình nhập nhiều module với dấu phẩy phân tách chúng - như trong import random, math - nhưng điều này không phù hợp với Hướng dẫn kiểu PEP 8 .

Để sử dụng module bổ sung của ta , ta có thể thêm hằng số pi từ math vào chương trình của bạn và giảm số lượng số nguyên ngẫu nhiên được in ra:

my_rand_int.py
import random import math   for i in range(5):     print(random.randint(1, 25))  print(math.pi) 

Bây giờ, khi ta chạy chương trình của bạn , ta sẽ nhận được kết quả giống như thế này, với giá trị xấp xỉ của pi là dòng kết quả cuối cùng của ta :

Output
18 10 7 13 10 3.141592653589793 

Câu lệnh import cho phép bạn nhập một hoặc nhiều module vào chương trình Python của bạn , cho phép bạn sử dụng các định nghĩa được xây dựng trong các module đó.

Sử dụng fromimport

Để tham chiếu đến các mục từ một module trong không gian tên chương trình của bạn, bạn có thể sử dụng câu lệnh fromimport . Khi bạn khai báo module theo cách này, bạn có thể tham khảo các chức năng theo tên thay vì thông qua ký hiệu dấu chấm

Trong cấu trúc này, bạn có thể chỉ định định nghĩa nào để tham chiếu trực tiếp.

Trong các chương trình khác, bạn có thể thấy câu lệnh import tham chiếu đến mọi thứ được xác định trong module bằng cách sử dụng dấu hoa thị ( * ) làm ký tự đại diện, nhưng điều này không được khuyến khích bởi PEP 8 .

Trước tiên, hãy xem xét nhập một hàm cụ thể, randint() từ module random :

my_rand_int.py
from random import randint 

Ở đây, đầu tiên ta gọi from khóa from , sau đó là random cho module . Tiếp theo, ta sử dụng từ khóa import và gọi hàm cụ thể mà ta muốn sử dụng.

Bây giờ, khi ta triển khai hàm này trong chương trình của bạn , ta sẽ không còn viết hàm trong ký hiệu dấu chấm là random.randint() mà thay vào đó sẽ chỉ viết hàm randint() :

my_rand_int.py
from random import randint   for i in range(10):     print(randint(1, 25)) 

Khi bạn chạy chương trình, bạn sẽ nhận được kết quả tương tự như những gì ta nhận được trước đó.

Sử dụng cấu trúc fromimport cho phép ta tham chiếu đến các phần tử được xác định của một module trong không gian tên chương trình của ta , cho phép ta tránh ký hiệu dấu chấm.

Mô-đun Alias

Có thể sửa đổi tên của các module và chức năng của chúng trong Python bằng cách sử dụng từ khóa as .

Bạn có thể cần thay đổi tên vì bạn đã sử dụng cùng một tên cho một thứ khác trong chương trình của bạn , một module khác mà bạn đã nhập cũng sử dụng tên đó hoặc bạn có thể cần viết tắt một tên dài hơn mà bạn đang sử dụng nhiều.

Cấu trúc của câu lệnh này trông giống như sau:

import [module] as [another_name] 

Hãy sửa đổi tên của module math trong file chương trình my_math.py của ta . Ta sẽ thay đổi tên module của math thành m để viết tắt nó. Chương trình đã sửa đổi của ta sẽ trông như thế này:

my_math.py
import math as m   print(m.pi) print(m.e) 

Trong chương trình, bây giờ ta gọi hằng số pim.pi chứ không phải là math.pi

Đối với một số module , việc sử dụng alias là điều phổ biến. Tài liệu chính thức của module matplotlib.pyplot yêu cầu sử dụng plt làm alias :

import matplotlib.pyplot as plt 

Điều này cho phép các lập trình viên nối từ ngắn hơn plt vào bất kỳ hàm nào có sẵn trong module , như trong plt.show() . Bạn có thể thấy câu lệnh nhập alias này được sử dụng trong “ Cách vẽ dữ liệu trong Python 3 bằng hướng dẫn sử dụng matplotlib ” của ta .

Kết luận

Khi ta nhập các module , ta có thể gọi các hàm không được tích hợp trong Python. Một số module được cài đặt như một phần của Python và một số module ta sẽ cài đặt thông qua pip .

Việc sử dụng các module cho phép ta làm cho các chương trình của bạn mạnh mẽ hơn và mạnh mẽ hơn khi ta tận dụng mã hiện có. Ta cũng có thể tạo các module riêng cho chính mình và cho các lập trình viên khác để sử dụng trong các chương trình sau này.


Tags:

Các tin liên quan

Cách cài đặt Python 3 và thiết lập môi trường lập trình trên server Ubuntu 16.04
2017-02-01
Hiểu Tuples trong Python 3
2017-01-19
Cách tạo các vòng lặp trong Python 3
2017-01-12
Hiểu toàn bộ danh sách trong Python 3
2017-01-12
Cách sử dụng các câu lệnh Break, Continue và Pass khi làm việc với các vòng lặp trong Python 3
2017-01-06
Cách tạo vòng lặp While trong Python 3
2017-01-05
Cách làm việc với dữ liệu ngôn ngữ trong Python 3 bằng Bộ công cụ ngôn ngữ tự nhiên (NLTK)
2017-01-03
Cách tạo Twitterbot bằng Python 3 và Thư viện Tweepy
2016-11-30
Cách tạo ứng dụng Twitter bằng Python
2016-11-23
Cách tạo ứng dụng Twitter bằng Python
2016-11-23