से बचने के लिए कैसे:दृश्य के साथ मेमोरी लीक
from traits.api import HasTraits, Int, Instance
from traitsui.api import View
class NewView(View):
def __del__(self):
print('deleting NewView')
class A(HasTraits):
new_view = Instance(NewView)
def __del__(self):
print('deleting {}'.format(self))
a = Int
def default_traits_view(self):
new_view = NewView('a')
return new_view
a = A()
del(a)
रिटर्न
deleting <__main__.A object at 0x12a016a70>
एकदम सही ढंग से
चल रहा है।
अगर मैं
a = A()
a.configure_traits()
और संवाद को बंद करने के बाद कार्य करें:
del(a)
मैं संदेश एक ही प्रकार है: newview के उल्लेख के बिना
deleting <__main__.A object at 0x12a016650>
हटाया जा रहा है ।
geneal में, लक्षण और TraitsUI साथ मेमोरी लीक से बचने के लिए अच्छी प्रथाओं क्या हैं?
अच्छा सवाल है, यवेस:
मेरी मशीन पर, यहाँ है कि मैं क्या जब
open_view
कहा जाता है देखते हैं । मेरा पहला (बहुत ही टिकाऊ) अनुमान यह है कि क्योंकि दृश्य हल्के होते हैं और बढ़ने की उम्मीद नहीं होती है, इसे एक महत्वपूर्ण समस्या नहीं माना जाता है। मेरा दूसरा अनुमान यह है कि छिपा जादू है। :) मैंने एक स्पष्टीकरण के लिए कुछ TraitsUI जादूगरों से पूछा है। अगर हमें कोई जवाब नहीं मिलता है, तो मैं एक TraitsUI मुद्दे के रूप में पोस्ट करने का सुझाव दूंगा जहां यह समय के साथ दृश्यता बनाए रखेगा। –