Tôi đã tìm kiếm câu trả lời chính xác cho câu hỏi này trong vài ngày nay nhưng không có gì tốt. Tôi không phải là một người mới bắt đầu hoàn toàn trong lập trình, nhưng thậm chí chưa ở trình độ trung cấp.
Khi tôi ở trong shell của Python, tôi nhập: dir()
và tôi có thể thấy tất cả tên của tất cả các đối tượng trong phạm vi hiện tại (khối chính), có 6 trong số chúng:
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']
Sau đó, khi tôi khai báo một biến, chẳng hạn x = 10
, nó sẽ tự động thêm vào danh sách các đối tượng trong mô-đun tích hợp sẵn dir()
và khi tôi nhập dir()
lại, nó hiển thị ngay bây giờ:
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'x']
Điều này cũng xảy ra với các hàm, lớp, v.v.
Làm cách nào để xóa tất cả các đối tượng mới đó mà không xóa tiêu chuẩn 6 có sẵn ở đầu?
Tôi đã đọc ở đây về "dọn dẹp bộ nhớ", "làm sạch bảng điều khiển", xóa tất cả văn bản khỏi cửa sổ nhắc lệnh:
>>> import sys
>>> clear = lambda: os.system('cls')
>>> clear()
Nhưng tất cả những điều này không liên quan gì đến những gì tôi đang cố gắng đạt được, nó không làm sạch tất cả các đồ vật đã sử dụng.
del
chức năng ở đó. Tôi đang bắt đầu học Python và thường phải thử nghiệm trong shell, vì vậy các tên biến tiêu chuẩn như x
hoặc y
thường đã được sử dụng và việc khởi động lại shell sẽ mất thêm 15 giây để thực hiện (hiện tại tôi có một máy tính xách tay rất cũ). Vì vậy, tôi muốn tìm cách làm sạch bộ nhớ Python nhanh hơn.
del
không hẳn là một hàm, do đó không (
và )
. Đó là một từ khóa giới thiệu một câu lệnh del. Tất nhiên, làm thế nào nó thực sự xóa một đối tượng có thể bao gồm các chức năng, nhưng đó là một câu chuyện ...
x
hoặc y
không nên được sử dụng trừ khi bạn đang sử dụng chúng. Hoặc trừ khi bạn làm điều gì đó ngớ ngẩn như vậy from _somemodule_ import *
, thì bạn sẽ nhận được đủ loại rác bừa bãi ở nơi đó. :)