Computer >> Máy Tính >  >> Lập trình >> Python

Đang tải lại các mô-đun trong Python?

Reload () - tải lại mô-đun đã nhập trước đó hoặc mô-đun đã tải. Điều này rất hữu ích trong trường hợp bạn liên tục chạy một tập lệnh thử nghiệm trong một phiên tương tác, nó luôn sử dụng phiên bản đầu tiên của các mô-đun mà chúng tôi đang phát triển, ngay cả khi chúng tôi có các thay đổi về mã. Trong trường hợp đó, chúng tôi cần đảm bảo rằng các mô-đun đã được tải lại.

Đối số được truyền cho reload () phải là một đối tượng mô-đun đã được nhập thành công trước đó.

Cú pháp

import importlib
importlib.reload(sys)

Ví dụ

>>> import sys
>>> import importlib
>>> importlib.reload(sys)
<module 'sys' (built-in)>

Tuy nhiên, nếu bạn đang cố gắng tải lại một mô-đun chưa được nhập trước đó, bạn có thể gặp phải Lỗi.

>>> import importlib
>>> importlib.reload(sys)
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
importlib.reload(sys)
NameError: name 'sys' is not defined

Một số điểm cần hiểu, khi thực thi reload () -

  • Mã của mô-đun Python được biên dịch lại và mã cấp mô-đun được thực thi lại, xác định một tập hợp các đối tượng mới được liên kết với các tên trong từ điển của mô-đun bằng cách sử dụng lại trình tải đã tải mô-đun ban đầu. Tuy nhiên, chức năng init của các mô-đun không được tải lại

  • Các đối tượng cũ chỉ được lấy lại sau khi số lượng tham chiếu của chúng giảm xuống 0.

  • Các tên trong không gian tên mô-đun được thay đổi thành đối tượng mới nếu có.

  • Các tham chiếu khác của các đối tượng cũ (như tên bên ngoài mô-đun) không nhất thiết phải tham chiếu đến các đối tượng mới và phải được cập nhật trong từng không gian tên nơi chúng xuất hiện nếu điều đó được yêu cầu.