20/07/2019, 09:48

Mô-đun trong Python

Previous Nội dung chính: Định nghĩa Mô-đun trong Python Lệnh inport mô-đun trong Python Sử dụng lệnh import trong Python Sử dụng lệnh from…import trong Python Sử dụng lệnh from…import* trong Python Mô-đun có sẫn (built-in) trong Python Package ...

Previous

Nội dung chính:

  • Định nghĩa Mô-đun trong Python
  • Lệnh inport mô-đun trong Python
    • Sử dụng lệnh import trong Python
    • Sử dụng lệnh from…import trong Python
    • Sử dụng lệnh from…import* trong Python
  • Mô-đun có sẫn (built-in) trong Python
  • Package trong Python
  • Câu hỏi: Tệp __init__.py là gì?

Định nghĩa Mô-đun trong Python

Mô-đun trong Python đượ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, Mô-đun 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.

Mô-đun 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 Mô-đun là một file, trong đó các lớp, hàm và biến được định nghĩa. Tất nhiên, một Mô-đun 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ự, Mô-đun 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: Mô-đun 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 Mô-đun.

Ví dụ:

Ví dụ về một hàm có tên là print_func được đặt bên trong mô-đun test.py.

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

Lệnh inport mô-đun trong Python

Để import một Mô-đun, 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 Mô-đun 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 Mô-đun1[, Mô-đun2[,... Mô-đunN]

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 Mô-đun 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 Mô-đun theo phương thức như trên.

Để import nhiều Mô-đun, 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 Mô-đun. Trong trường hợp mà bạn không muốn import toàn bộ Mô-đun 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
    returndef square(l):
    print l*l
    returndef rectangle(l,b):
    print l*b
    returndef 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ộ Mô-đun. Do đó bạn có thể truy cập các thuộc tính trong Mô-đun 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

Mô-đun có sẫn (built-in) trong Python

Phần trên, bạn đã tìm hiểu cách tạo ra Mô-đun cho riêng mình và cách import chúng. Phần này sẽ giới thiệu các Mô-đun đã được xây dựng sẵn trong Python. Đó là math, random, threading, collections, os, mailbox, string, time, … Mỗi Mô-đun 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 Mô-đun 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 Mô-đun:

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 Mô-đun:

import randomprint 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 Mô-đun, 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à viettuts chẳng hạn.

Bước 2: Đặt các Mô-đun khác nhau bên trong thư mục viettuts này. Chúng ta đặt ba Mô-đun là msg1.py, msg2.py, và msg3.py và đặt tương ứng code trên vào các Mô-đun 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 Mô-đun.

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 Mô-đun 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: Tệp __init__.py 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.

Previous
0