我在Python中有这个简单的类。 Name是一个字符串,events是字符串列表。
class Page(object):
def __init__(self, name=None, events=None):
self.name = name
self.events = events or []
def add(self, x):
return self.events.append(x)
@property
def eventstring(self):
return " , ".join(self.events)
我有这个输入:
log = {'key1': [['e1', 'e2'], 'e3', ]], 'key2': ['e5', 'e6', 'e7']}
我想在日志中创建读取并生成页面列表。即
[Page('key1', ['e1', 'e2', 'e3']), Page('key2', ['e5', 'e6', 'e7']}
我创建Page对象列表的当前代码不起作用。另外,收到AttributeError: 'NoneType' object has no attribute 'append'
错误信息。
def inputevent(inputlog):
final_pages = []
pg = Page()
for key, val in inputlog.items():
pg.name = key
for e in val:
pg.events = pg.add(e)
final_pages.append(pg)
final_pages.append(pg)
return final_pages
答案 0 :(得分:2)
Page.add()
会返回None
,但您要将其分配回pg.events
:
pg.events = pg.add(e)
这有效地清除了pg.events
。由于pg.add()
就地改变了pg.events
,因此根本不需要将pg.events
分配回来:
for key, val in inputlog.items():
pg.name = key
for e in val:
pg.add(e)