Mô-đun Python: Tìm hiểu cách tạo và nhập các mô-đun tùy chỉnh và tích hợp

Trong bài viết này, bạn sẽ học cách tạo và nhập các mô-đun tùy chỉnh bằng Python. Ngoài ra, bạn sẽ tìm thấy các kỹ thuật khác nhau để nhập và sử dụng các mô-đun tùy chỉnh và tích hợp sẵn trong Python.

Video: Mô-đun Python

Mô-đun trong Python là gì?

Các mô-đun tham chiếu đến một tệp chứa các câu lệnh và định nghĩa Python.

Một tệp chứa mã Python, ví dụ:, example.pyđược gọi là mô-đun và tên mô-đun của nó sẽ là example.

Chúng tôi sử dụng các mô-đun để chia nhỏ các chương trình lớn thành các tệp nhỏ có thể quản lý và sắp xếp. Hơn nữa, các mô-đun cung cấp khả năng tái sử dụng của mã.

Chúng tôi có thể xác định các chức năng được sử dụng nhiều nhất trong một mô-đun và nhập nó, thay vì sao chép các định nghĩa của chúng vào các chương trình khác nhau.

Hãy để chúng tôi tạo một mô-đun. Nhập nội dung sau và lưu nó dưới dạng example.py.

 # Python Module example def add(a, b): """This program adds two numbers and return the result""" result = a + b return result

Ở đây, chúng tôi đã xác định một hàm add()bên trong một mô-đun có tên example. Hàm nhận hai số và trả về tổng của chúng.

Làm cách nào để nhập các mô-đun bằng Python?

Chúng tôi có thể nhập các định nghĩa bên trong một mô-đun sang một mô-đun khác hoặc trình thông dịch tương tác bằng Python.

Chúng tôi sử dụng importtừ khóa để làm điều này. Để nhập mô-đun đã xác định trước đó của chúng tôi example, chúng tôi nhập dòng sau vào lời nhắc Python.

 >>> import example

Thao tác này không nhập exampletrực tiếp tên của các hàm được định nghĩa trong bảng ký hiệu hiện tại. Nó chỉ nhập tên mô-đun exampleở đó.

Sử dụng tên mô-đun, chúng ta có thể truy cập hàm bằng .toán tử dấu chấm . Ví dụ:

 >>> example.add(4,5.5) 9.5

Python có rất nhiều mô-đun tiêu chuẩn. Bạn có thể xem danh sách đầy đủ các mô-đun chuẩn Python và các trường hợp sử dụng của chúng. Các tệp này nằm trong thư mục Lib bên trong vị trí bạn đã cài đặt Python.

Các mô-đun chuẩn có thể được nhập giống như cách chúng tôi nhập các mô-đun do người dùng xác định.

Có nhiều cách khác nhau để nhập mô-đun. Chúng được liệt kê bên dưới…

Câu lệnh nhập Python

Chúng ta có thể nhập một mô-đun bằng cách sử dụng importcâu lệnh và truy cập các định nghĩa bên trong nó bằng cách sử dụng toán tử dấu chấm như được mô tả ở trên. Đây là một ví dụ.

 # import statement example # to import standard module math import math print("The value of pi is", math.pi)

Khi bạn chạy chương trình, đầu ra sẽ là:

 Giá trị của pi là 3,141592653589793

Nhập bằng đổi tên

Chúng ta có thể nhập một mô-đun bằng cách đổi tên nó như sau:

 # import module by renaming it import math as m print("The value of pi is", m.pi)

Chúng tôi đã đổi tên mathmô-đun thành m. Điều này có thể giúp chúng tôi tiết kiệm thời gian đánh máy trong một số trường hợp.

Lưu ý rằng tên mathkhông được công nhận trong phạm vi của chúng tôi. Do đó, math.pikhông hợp lệ và m.pilà cách triển khai chính xác.

Python từ… câu lệnh nhập

Chúng tôi có thể nhập các tên cụ thể từ một mô-đun mà không cần nhập toàn bộ mô-đun. Đây là một ví dụ.

 # import only pi from math module from math import pi print("The value of pi is", pi)

Ở đây, chúng tôi chỉ nhập pithuộc tính từ mathmô-đun.

Trong những trường hợp như vậy, chúng tôi không sử dụng toán tử dấu chấm. Chúng tôi cũng có thể nhập nhiều thuộc tính như sau:

 >>> from math import pi, e >>> pi 3.141592653589793 >>> e 2.718281828459045

Nhập tất cả các tên

Chúng tôi có thể nhập tất cả các tên (định nghĩa) từ một mô-đun bằng cách sử dụng cấu trúc sau:

 # import all names from the standard module math from math import * print("The value of pi is", pi)

Ở đây, chúng tôi đã nhập tất cả các định nghĩa từ mô-đun toán học. Điều này bao gồm tất cả các tên hiển thị trong phạm vi của chúng tôi ngoại trừ những tên bắt đầu bằng dấu gạch dưới (định nghĩa riêng tư).

Importing everything with the asterisk (*) symbol is not a good programming practice. This can lead to duplicate definitions for an identifier. It also hampers the readability of our code.

Python Module Search Path

While importing a module, Python looks at several places. Interpreter first looks for a built-in module. Then(if built-in module not found), Python looks into a list of directories defined in sys.path. The search is in this order.

  • The current directory.
  • PYTHONPATH (an environment variable with a list of directories).
  • The installation-dependent default directory.
 >>> import sys >>> sys.path ('', 'C:\Python33\Lib\idlelib', 'C:\Windows\system32\python33.zip', 'C:\Python33\DLLs', 'C:\Python33\lib', 'C:\Python33', 'C:\Python33\lib\site-packages')

We can add and modify this list to add our own path.

Reloading a module

The Python interpreter imports a module only once during a session. This makes things more efficient. Here is an example to show how this works.

Suppose we have the following code in a module named my_module.

 # This module shows the effect of # multiple imports and reload print("This code got executed")

Now we see the effect of multiple imports.

 >>> import my_module This code got executed >>> import my_module >>> import my_module

We can see that our code got executed only once. This goes to say that our module was imported only once.

Now if our module changed during the course of the program, we would have to reload it.One way to do this is to restart the interpreter. But this does not help much.

Python provides a more efficient way of doing this. We can use the reload() function inside the imp module to reload a module. We can do it in the following ways:

 >>> import imp >>> import my_module This code got executed >>> import my_module >>> imp.reload(my_module) This code got executed 

The dir() built-in function

Chúng ta có thể sử dụng dir()hàm để tìm ra các tên được định nghĩa bên trong một mô-đun.

Ví dụ, chúng tôi đã xác định một hàm add()trong mô-đun examplemà chúng tôi đã có lúc đầu.

Chúng ta có thể sử dụng dirtrong examplemô-đun theo cách sau:

 >>> dir(example) ('__builtins__', '__cached__', '__doc__', '__file__', '__initializing__', '__loader__', '__name__', '__package__', 'add')

Tại đây, chúng ta có thể thấy danh sách tên đã được sắp xếp (cùng với add). Tất cả các tên khác bắt đầu bằng dấu gạch dưới là các thuộc tính Python mặc định được liên kết với mô-đun (không phải do người dùng xác định).

Ví dụ, __name__thuộc tính chứa tên của mô-đun.

 >>> import example >>> example.__name__ 'example'

Tất cả các tên được xác định trong không gian tên hiện tại của chúng ta có thể được tìm thấy bằng cách sử dụng dir()hàm mà không có bất kỳ đối số nào.

 >>> a = 1 >>> b = "hello" >>> import math >>> dir() ('__builtins__', '__doc__', '__name__', 'a', 'b', 'math', 'pyscripter')

thú vị bài viết...