ฉันค้นหาคำตอบที่ถูกต้องสำหรับคำถามนี้มาสองสามวันแล้ว แต่ก็ยังไม่มีอะไรดี ฉันไม่ใช่มือใหม่ที่สมบูรณ์ในการเขียนโปรแกรม แต่ยังไม่ถึงระดับกลาง
เมื่อฉันอยู่ในเชลล์ของ Python ฉันพิมพ์: dir()
และฉันสามารถดูชื่อทั้งหมดของวัตถุทั้งหมดในขอบเขตปัจจุบัน (บล็อกหลัก) มีทั้งหมด 6 ชื่อ:
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']
จากนั้นเมื่อฉันประกาศตัวแปรx = 10
มันจะเพิ่มลงในรายการวัตถุนั้นโดยอัตโนมัติภายใต้โมดูลในตัวdir()
และเมื่อฉันพิมพ์dir()
อีกครั้งมันจะแสดงในตอนนี้:
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'x']
เช่นเดียวกับฟังก์ชันคลาสและอื่น ๆ
ฉันจะลบอ็อบเจ็กต์ใหม่ทั้งหมดโดยไม่ลบมาตรฐาน 6 ที่มีอยู่ในตอนต้นได้อย่างไร
ฉันได้อ่านที่นี่เกี่ยวกับ "การล้างหน่วยความจำ" "การล้างคอนโซล" ซึ่งจะลบข้อความทั้งหมดจากหน้าต่างพรอมต์คำสั่ง:
>>> import sys
>>> clear = lambda: os.system('cls')
>>> clear()
แต่ทั้งหมดนี้ไม่เกี่ยวข้องกับสิ่งที่ฉันพยายามจะบรรลุมันไม่ได้ทำความสะอาดวัตถุที่ใช้แล้วทั้งหมด
del
ฟังก์ชั่นอยู่ที่นั่น ฉันเริ่มเรียนรู้ Python และมักจะต้องทดลองในเชลล์ดังนั้นชื่อตัวแปรมาตรฐานเช่นx
หรือy
มักจะถูกใช้งานอยู่แล้วและการรีสตาร์ทเชลล์จะใช้เวลาอีก 15 วินาทีในการทำ (ตอนนี้ฉันมีแล็ปท็อปเก่ามาก) ดังนั้นฉันจึงต้องการหาวิธีล้างหน่วยความจำ Python ให้เร็วขึ้น
del
ไม่ใช่ฟังก์ชันดังนั้นจึงไม่ใช่(
และ)
. เป็นคำหลักที่แนะนำคำสั่ง del แน่นอนว่าการลบออบเจ็กต์อาจเกี่ยวข้องกับฟังก์ชัน แต่นั่นเป็นอีกเรื่องหนึ่ง ...
x
หรือy
ไม่ควรใช้เว้นแต่คุณจะใช้ชื่อนั้น หรือถ้าคุณไม่ทำอะไรโง่ ๆ เช่นfrom _somemodule_ import *
นั้นคุณจะได้รับขยะทุกประเภทที่รกรุงรัง :)