当前位置: 代码迷 >> python >> 无法同时复制和附加etree元素
  详细解决方案

无法同时复制和附加etree元素

热度:130   发布时间:2023-07-16 11:18:42.0

我希望有人能解释这种行为,这让我很头疼,试图弄清楚我的代码出了什么问题。

假设我们像这样设置了一些简单的etree元素

from copy import deepcopy
from lxml import etree
elem1=etree.Element('e1')
elem2=etree.Element('e2')

如果我这样做

elem_copy=deepcopy(elem1).append(elem2)

elem_copy作为NoneType

但是,如果我只是打破这样的步骤

elem_copy=deepcopy(elem1)
elem_copy.append(elem2)

我在elem_copyelem2新元素作为子元素来获得预期的行为。

谁能解释为什么?

在第一种情况下

elem_copy=deepcopy(elem1).append(elem2)

append的结果,即None被分配回elem_copy

在第二种情况下

elem_copy=deepcopy(elem1)
elem_copy.append(elem2)

append的结果分配回elem_copy 结果, elem_copy的元素由deepcopy返回,并附加了第二个元素。

希望能有所帮助。