Module

Ngoài việc cho phép định nghĩa, xây dựng các hàm (function), python còn cho phép xây dựng module nhằm nâng cao việc quản lý, phân chia công việc và tái sử dụng code. Người viết code không cần phải nhồi nhét tất cả vào trong một file duy nhất mà có thể chia ra thành nhiều file đặt trong nhiều thư mục khác nhau.

  1. Module:
    Mỗi module là 1 file có đuôi .py chứa các hàm, biến toàn cục, class được thiết lập sẵn.
    Ví dụ: tạo file có tên main.py và first_module.py trong cùng thư mục. Trong file first_module.py nhập đoạn code sau:
def tinh_nhan(x,y):
    S = x*y
    print("kết quả: ", S)

def tinh_cong(x,y):
    S = x+y
    print("kết quả: ", S)

def tinh_tru(x,y):
    S = x-y
    print("kết quả: ", S)

Trong file main.py khai báo module và sử dụng hàm tinh_nhan() như sau:

import first_module
first_module.tinh_nhan(5,10)

Giải thích: Dòng đầu tiên là cho biết sẽ sử dụng module “first_module” còn dòng thứ 2 là gọi hàm “tinh_nhan()” đã xây dựng trong “first_module” với 2 thông số đầu vào là 5 và 10.

Kết quả sẽ cho ra:

Thông thường nếu tên module dài, gây bất tiện khi mỗi lần gọi hàm trong module, chúng ta sử dụng cú pháp import <tên module> as <tên gợi nhớ>. Cũng ví dụ trên, chúng ta sửa lại file main.py như sau:

import first_module as fm
fm.tinh_dien_tich(5,10)

Khi bấm chạy vẫn ra kết quả như trước. Lúc này first_module được đặt tên dễ nhớ hơn là fm.

Trong trường hợp không muốn import toàn bộ module mà chỉ import 1 hàm hoặc 1 biến trong module. Chúng ta dùng cú pháp

from <tên module> import <tên hàm 1, tên hàm 2,..., tên biến 1, tên biến 2,...>

Ví dụ:

from first_module import tinh_nhan as tdt
tdt(5,10)

Lần này do hàm được import trực tiếp nên có thể gọi thực thi luôn mà không cần phải gọi tên module như ví dụ trước. Cũng có thể dùng cách này để import toàn bộ hàm, biến toàn cục và các class trong module bằng cách dùng ký tự *

from <tên module> import *

Ví dụ: trong file main.py nhập đoạn code

from first_module import *
tinh_nhan(1,2)
tinh_cong(1,2)
tinh_tru(2,1)

Trường hợp muốn đặt file first_module trong thư mục khác ví dụ thư mục module thì thêm tên thư trước tên module và ngăn cách bởi dấu chấm như sau:

from module.first_module import *
tinh_nhan(1,2)
tinh_cong(1,2)
tinh_tru(2,1)

Design a site like this with WordPress.com
Get started