我有一个简单的 Python 类。名称是一个字符串,事件是字符串列表。
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
最佳答案
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)
关于python - 简单地将列表附加到Python中的类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22337799/