Birkaç gündür bu soruya doğru cevabı arıyordum ama iyi bir şey bulamadım. Programlama konusunda tam bir başlangıç değilim, ancak henüz orta düzeyde bile değilim.
Python'un kabuğundayken şunu yazıyorum: dir()
ve mevcut kapsamdaki (ana blok) tüm nesnelerin tüm adlarını görebiliyorum, bunlardan 6 tane var:
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']
Sonra, örneğin bir değişken x = 10
bildirdiğimde, yerleşik modül altındaki nesne listelerine otomatik olarak ekler dir()
ve dir()
tekrar yazdığımda , şimdi şunu gösterir:
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'x']
Aynısı işlevler, sınıflar vb. İçin de geçerlidir.
Başlangıçta mevcut olan standart 6'yı silmeden tüm bu yeni nesneleri nasıl silebilirim?
Komut istemi penceresinden tüm metni silen "bellek temizleme", "konsolun temizlenmesi" hakkında burada okudum:
>>> import sys
>>> clear = lambda: os.system('cls')
>>> clear()
Ancak tüm bunların başarmaya çalıştığım şeyle hiçbir ilgisi yok, kullanılmış tüm nesneleri temizlemiyor.
del
işlev olduğunu bilmiyordum . Ben Python öğrenmek ve sık sık kabuğunda deneme yapmanız, gibi pek standart değişken adları başlıyorum x
ya y
zaten kullanımda sıklıkla ve kabuk yeniden başlatmadan (şimdi bir çok, çok eski laptop) yapmak için başka bir 15 saniye sürer. Bu yüzden Python belleğini daha hızlı temizlemenin bir yolunu bulmak istedim.
del
tam olarak bir işlev değildir, dolayısıyla hayır (
ve )
. Bir del ifadesi sunan bir anahtar kelimedir. Elbette, bir nesnenin aslında nasıl silindiğini gösteren işlevler olabilir, ancak bu başka bir hikaye ...
x
veya y
sürece kullanımda olmamalıdır sen bunları kullanıyor. Ya da aptalca bir şey yapmazsanız from _somemodule_ import *
, o zaman her tür çöpün etrafa dağılmasına neden olursunuz. :)