निम्नलिखित कोड पर विचार करें:आप डेल या का उपयोग कर पसंद करेंगे कोई नहीं करने के लिए फिर नियत (कचरा एकत्र करने)
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' है। अपवाद अगर कुछ अलग अर्थों के लिए 'कोई नहीं' की आवश्यकता है (लेकिन फिर मैं "मौजूद नहीं" इंगित करने के बजाय 'एलिप्सिस' का उपयोग करता हूं)। –
तो वास्तव में डेल कचरा संग्रहण प्रक्रिया को सीधे कॉल नहीं करता है, यह केवल तब ही रिफाउंटर को कम करता है और संग्राहक को सफाई के लिए कचरा स्थान में परिवर्तनीय लटकता छोड़ देता है? – Red15
@ लाल 15: सही। –