Rozważmy następujący kod:wolisz korzystania del lub realokacja None (zbieranie śmieci)
if value and self.fps_display is None:
self.fps_display = clock.ClockDisplay()
elif not value and self.fps_display is not None:
self.fps_display.unschedule()
# Do this
del self.fps_display
# or this
self.fps_display = None
# or leave both in ?
co jest lepsze oczyszczanie python?
I zazwyczaj przejść do przypisywania do 'None', ponieważ łatwiej (i ładniejsza), aby przejść' jeśli self.fps_display jest None' niż 'jeśli hasattr (self, "fps_display")'. Wyjątek, jeśli 'None' jest potrzebny dla jakiegoś innego znaczenia (ale wtedy użyłbym' Ellipsis' zamiast tego, by wskazać "nieobecny"). –
Więc w rzeczywistości del nie wywołuje proces zbierania śmieci bezpośrednio, a jedynie zmniejsza refcounter wtedy i pozostawia zmienną wiszące w przestrzeni śmieci do kolektora do czyszczenia? – Red15
@ Red15: Prawidłowo. –