我有以下功能:
def to_url(self):
return {
'ass_cls': self.model.__class__.__name__,
**{local.name: getattr(self.model.src, remote.name)
for local, remote in self.model.__class__.src.property.local_remote_pairs},
**{k: v
for k, v in self.model.__dict__.items()
if not k.startswith('_') and k != 'src'},
}
如何将这段代码转换为Python兼容的Python?
我相信,代码目前正在使用size,这是一个Python 3.5功能。
答案 0 :(得分:3)
新的unpacking feature是3.4中不起作用的。
你必须使用旧的,更冗长的合并字典的方法。
def to_url(self):
d = {'ass_cls': self.model.__class__.__name__}
d.update({local.name: getattr(self.model.src, remote.name)
for local, remote in self.model.__class__.src.property.local_remote_pairs})
d.update({k: v for k, v in self.model.__dict__.items()
if not k.startswith('_') and k != 'src'})
return d