def mutate_unpack(self, node):
target = node.targets[0]
value = node.value
new_targets = []
new_values = []
for target_element, value_element in zip(target.elts, value.elts):
if not self.is_overridden(node, getattr(target_element, 'id', None)):
new_targets.append(target_element)
new_values.append(value_element)
if len(new_targets) == len(target.elts):
raise MutationResign()
if not new_targets:
return ast.Pass()
elif len(new_targets) == 1:
node.targets = new_targets
node.value = new_values[0]
return node
else:
target.elts = new_targets
value.elts = new_values
return node
评论列表
文章目录