我仍然是 python 的初学者,我目前正在使用2.7版来制作我想要制作的一个小模块。
它用于创建菜单(现在,非常简单)
更新基于丹尼尔和德尔南的答案:
每个菜单都是一个对象:
class UiNavMenu(object):
def __init__(self):
self.title = title
self.links = []
def add(self, title, link, **kwargs):
'''
Add a link to the menu by creating a UiNavLink object.
'''
link = UiNavLink(title, link, kwargs)
self.links.append(link)
def clear(self):
'''
Clear all links in the menu
'''
self.links = []
def __repr__(self):
return "<UInavmenu object> Menu '%s' : %s links" % (self.title, len(self.links))
这实际上是非常基本的。
现在链接对象:
class UiNavLink(object):
def __init__(self, title, link, **kwargs):
self.title = title
self.link = link
for key, value in kwargs.items():
self.key = value
所以现在,我想知道的是:
首先,我知道python使用垃圾收集器,并且在他的进程中销毁了一个对象。
但是,如果我使用菜单对象的 clean() 方法,例如:menu.clean(),菜单将与他的所有内容一起被销毁。因此其中的列表(self.lists)也将被销毁。
但是列表中包含的链接对象(UiNavLink 对象)是否也会被破坏,所以我不必照顾它?还是我必须手动处理它?!
非常感谢你 :)
扬