Module trong Python

Nếu như các bạn đã từng tìm hiểu qua một ngôn ngữ lập trình nào khác thì chắc hẳn các bạn cũng biết các ngôn ngữ đó nó đều có cơ chế load file và sử dụng lại. Ví dụ như PHP chúng ta sử dụng include,require,... Và hôm nay chúng ta hãy cùng tìm hiểu xem trong Python thì cách thức đó gọi là gì nhé. Cùng eLib theo dõi bài viết dưới đây.

Module trong Python

1. Định nghĩa Module trong Python

Module 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, 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.

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ụ:

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

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

2. Lệnh inport Module trong Python

Để 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
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ộ 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

3. Module có sẫn (built-in) 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 randomprint random.random()
print random.randint(2,8)

4. 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à viettuts chẳng hạn.

Bước 2: Đặt các Module khác nhau bên trong thư mục viettuts 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

5. 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.

Trên đây là bài viết của eLib.VN về Module trong Python. Phần này rất quan trọng, bạn đọc cần lưu ý để theo dõi. Chúc các bạn thành công!

Ngày:25/10/2020 Chia sẻ bởi:Thi

CÓ THỂ BẠN QUAN TÂM