我调试(在 PyCharm 中)一个脚本。我在断点处停止,然后转到调试控制台窗口,然后从那里调用导入行,如下所示:
import my_util1 from my_utils
Sau đó tôi gọi my_util1. Cho đến nay, rất tốt. Sau đó tôi đã thay đổi một số thứ trong "my_util1". Bây giờ tôi muốn gọi (đã cập nhật) my_util1, nhưng tôi không thể: hệ thống (Python? Pycharm?) chỉ "nhìn thấy" phiên bản trước của my_util1.
Có thể "đặt lại" (làm mới) lần nhập trước đó của tôi hoặc "nhập lại" nó, ngoài việc thoát PyCharm và khởi động lại dự án không?
Điều này không liên quan gì đến việc thay đổi động mã thực tế đang được gỡ lỗi. Nhiệm vụ tôi đang tìm kiếm đơn giản hơn - chỉ cần hoàn tác thao tác "nhập" hoặc đặt lại/xóa/làm mới tất cả "nhập" cùng một lúc là đủ. Ngoài ra, điều này có thể được thực hiện trong cửa sổ trình gỡ lỗi thay vì cửa sổ mã.
sys.modulesCó thể được thao tác để thay đổi chế độ xem của Python về những gì hiện được nhập. Trích dẫn tài liệu Python:
Đây là một từ điển ánh xạ tên mô-đun tới các mô-đun đã được tải. Điều này có thể được thao tác để buộc tải lại các mô-đun và các thủ thuật khác. Tuy nhiên, việc thay thế từ điển sẽ không nhất thiết hoạt động như mong đợi và việc xóa các mục thiết yếu khỏi từ điển có thể gây ra Python. thất bại.
Cách sử dụng ví dụ:
import sys
import my_util1 from my_utils
# Bây giờ sys.modules['my_utils'] đã tồn tại và my_util1 là tên cục bộ.
del sys.modules['my_utils']
# my_util1 vẫn tồn tại dưới dạng tên cục bộ, nhưng Python đã "quên" việc nhập.
import my_util1 from my_utils
# Việc này sẽ nhập lại my_utils và liên kết my_util1.
Tôi là một lập trình viên xuất sắc, rất giỏi!