Module trong Python



Module được sử dụng để phân loại code thành các phần nhỏ hơn liên quan với nhau. Hay nói cách khác, Module giúp bạn tổ chức Python code một cách logic để giúp bạn dễ dàng hiểu và sử dụng code đó hơn. Trong Python, Module là một đối tượng với các thuộc tính mà bạn có thể đặt tên tùy ý và bạn có thể gắn kết và tham chiếu.

Về cơ bản, một Module là một file, trong đó các lớp, hàm và biến được định nghĩa. Tất nhiên, một Module cũng có thể bao gồm code có thể chạy.

Bạn theo dõi qua ví dụ sau: Nếu nội dung của một quyển sách không được lập chỉ mục hoặc phân loại thành các chương riêng, thì quyển sách này có thể trở nên nhàm chán và gây khó khăn cho độc giả khi đọc và hiểu nó. Tương tự, Module trong Python là các file mà có các code tương tự nhau, hay có liên quan với nhau. Chúng có lợi thế sau:

  • Khả năng tái sử dụng: Module có thể được sử dụng ở trong phần Python code khác, do đó làm tăng tính tái sử dụng code.

  • Khả năng phân loại: Các kiểu thuộc tính tương tự nhau có thể được đặt trong một Module.

Ví dụ

Tiếp theo, bạn theo dõi một ví dụ về một Module có tên là vietjack được đặt bên trong test.py.

def print_func( par ):
   print "Hello : ", par
   return

Để import một Module, bạn có thể sử dụng một trong ba cách dưới đây:

Sử dụng lệnh import trong Python

Bạn có thể sử dụng bất cứ source file nào dưới dạng như một Module bằng việc thực thi một lệnh import trong source file khác. Cú pháp của lệnh import là:

import module1[, module2[,... moduleN]

Giả sử mình có đoạn code sau:

def add(a,b):
    c=a+b
    print c
    return

Lưu file dưới tên là addition.py. Lệnh import được sử dụng như sau với file này:

import addition
addition.add(10,20)
addition.add(30,40)

Ở đây, trong addition.add() thì addition là tên file và add() là phương thức đã được định nghĩa trong addion.py. Do đó, bạn có thể sử dụng phương thức đã được định nghĩa trong Module bằng cách là ten_file.phuong_thuc(). Code trên sẽ cho kết quả:

>>> 
30
70
>>>

Ghi chú: Bạn có thể truy cập bất cứ hàm nào bên trong một Module theo phương thức như trên.

Để import nhiều Module, bạn sử dụng cách như trong ví dụ sau:

1, msg.py

def msg_method():
    print "Hom nay troi mua"
    return

2, display.py

def display_method():
    print "Thoi tiet kha am uot"
    return

3, multiimport.py

import msg,display
msg.msg_method()
display.display_method()

Kết quả là:

>>> 
Hom nay troi mua
Thoi tiet kha am uot
>>>     

Sử dụng lệnh from…import trong Python

Lệnh from…import được sử dụng để import thuộc tính cụ thể từ một Module. Trong trường hợp mà bạn không muốn import toàn bộ Module nào đó thì bạn có thể sử dụng lệnh này. Cú pháp của lệnh from…import là:

from modname import name1[, name2[, ... nameN]]

Dưới đây là ví dụ:

1, area.py

def circle(r):
    print 3.14*r*r
    return

def square(l):
    print l*l
    return

def rectangle(l,b):
    print l*b
    return

def triangle(b,h):
    print 0.5*b*h
    return

2, area1.py

from area import square,rectangle
square(10)
rectangle(2,5)

Kết quả là:

>>> 
100
10
>>>

Sử dụng lệnh from…import* trong Python

Sử dụng lệnh này, bạn có thể import toàn bộ Module. Do đó bạn có thể truy cập các thuộc tính trong Module này. Cú pháp của lệnh là:

from modname import *

Ví dụ dưới đây chúng ta sẽ import area.py ở trên:

2, area1.py

from area import *
square(10)
rectangle(2,5)
circle(5)
triangle(10,20)

Kết quả là:

>>> 
100
10
78.5
100.0
>>>

Built-in Module trong Python

Phần trên, bạn đã tìm hiểu cách tạo ra Module cho riêng mình và cách import chúng. Phần này sẽ giới thiệu các Module đã được xây dựng sẵn trong Python. Đó là math, random, threading, collections, os, mailbox, string, time, … Mỗi Module này đã định nghĩa sẵn rất nhiều hàm để bạn có thể sử dụng để thực hiện các tính năng khác nhau. Bạn theo dõi một số ví dụ với hai Module là math và random mà có các hàm đã được giới thiệu trong các chương trước.

Ví dụ sử dụng math Module:

import math
a=4.6
print math.ceil(a)
print math.floor(a)
b=9
print math.sqrt(b)
print math.exp(3.0)
print math.log(2.0)
print math.pow(2.0,3.0)
print math.sin(0)
print math.cos(0)
print math.tan(45)

Ví dụ sử dụng random Module:

import random

print random.random()
print random.randint(2,8)

Package trong Python

Về cơ bản, một Package là một tập hợp các Module, sub-package, … tương tự nhau. Đó là một cấu trúc có thứ bậc của thư mục và file.

Dưới đây là các bước để tạo và import một Package:

Bước 1: Tạo một thư mục, có tên là vietjack chẳng hạn.

Bước 2: Đặt các module khác nhau bên trong thư mục vietjack này. Chúng ta đặt ba Module là msg1.py, msg2.py, và msg3.py và đặt tương ứng code trên vào các Module tương ứng. Bạn đặt hàm msg1() trong msg1.py, hàm msg2() trong msg2.py và hàm msg3() trong msg3.py.

Bước 3: Tạo một __init__.py file để xác định các thuộc tính trong mỗi Module.

Bước 4: Cuối cùng bạn import package này và sử dụng các thuộc tính đó bởi sử dụng package.

Bạn theo dõi ví dụ sau:

1, Tạo thư mục

import os
os.mkdir("Info")

2, Đặt các module khác nhau trong package:

msg1.py

def msg1():
    print "Day la msg1"

msg2.py

def msg2():
    print "Day la msg2"

msg3.py

def msg3():
    print "Day la msg3"

3, Tạo một __init__.py file.

from msg1 import msg1
from msg2 import msg2
from msg3 import msg3

4, Import package này và sử dụng các thuộc tính.

import Info
Info.msg1()
Info.msg2()
Info.msg3()

Kết quả là:

>>> 
Day la msg1
Day la msg2
Day la msg3
>>>

Câu hỏi: __init__.py file là gì?

Nó đơn giản là một file được sử dụng để xem xét các thư mục trên disk dưới dạng package của Python. Về cơ bản, file này được sử dụng để khởi tạo các Package trong Python.