16
考慮下面的代碼:你更願意使用刪除或重新分配給無(垃圾收集)
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 ?
哪個是更好的蟒蛇清理?
我通常去分配給'None',因爲它更容易(和更漂亮)去'如果self.fps_display比'如果hasattr(自我 「fps_display」)'None'。如果'None'有一些不同的含義需要例外(但是我會使用'Ellipsis'來代替「不存在」)。 –
所以實際上del並不直接調用垃圾收集過程,它只會減少refcounter,然後將變量懸掛在垃圾空間中以便收集器進行清理? – Red15
@ Red15:正確。 –