Trong quá trình viết code, chúng ta có thể sẽ cần đến một số mô-đun cụ thể. Thông thường, chúng ta hay nạp các mô-đun này vào dự án bằng 1 câu lệnh duy nhất.

Vậy thì sẽ thế nào nếu ta chỉ biết được tên của mô-đun này tại runtime?  Chúng ta sẽ nạp mô-đun đó vào dự án như thế nào? Hàm __import__() được tích hợp sẵn của Python có thể giúp bạn giải quyết được các băn khoăn này, nó giúp nạp các mô-đun vào dự án tại runtime.

Cú pháp: __import__(name, globals, locals, fromlist, level)

Giải thích các tham số:

– name: Tên của mô-đun muốn nạp vào dự án

– globals và locals: Các tên diễn giải

– formlist: Các đối tượng hoặc mô-đun phụ được nạp vào (dưới dạng một danh sách)

– level: Chỉ định liệu rằng sẽ sử dụng nạp vào tuyệt đối hay nạp vào tương đối. Mặc định là -1 (tuyệt đối và tương đối).

Ví dụ 1. Nạp vào mô-đun numpy, điều này tương tự với việc thực thi câu lệnh “import numpy”

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
#

# importing numpy module 
# it is equivalent to "import numpy" 
np = __import__('numpy', globals(), locals(), [], 0) 
  
# array from numpy 
a = np.array([1, 2, 3]) 
  
# prints the type 
print(type(a)) 

Kết quả in ra là:

<class 'numpy.ndarray'>

Ví dụ 2. Cả hai câu lệnh sau đây đều có cùng một ý nghĩa, và thực hiện cùng một chức năng


# from numpy import complex as comp, array as arr 
np = __import__('numpy', globals(), locals(), ['complex', 'array'], 0) 
  
comp = np.complex
arr = np.array 

Về việc ứng dụng hàm __import__()

Hàm __import__() không thực sự cần thiết trong lập trình Python. Việc trực tiếp sử dụng nó là rất hiếm thấy. Nhưng thi thoảng, khi cần nạp các mô-đun vào dự án tại runtime thì hàm này khá tiện dụng.

Nguồn và Tài liệu tiếng anh tham khảo:

Tài liệu từ cafedev:

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:

Chào thân ái và quyết thắng!

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!