问题描述
我希望有人能解释这种行为,这让我很头疼,试图弄清楚我的代码出了什么问题。
假设我们像这样设置了一些简单的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_copy
和elem2
新元素作为子元素来获得预期的行为。
谁能解释为什么?
1楼
在第一种情况下
elem_copy=deepcopy(elem1).append(elem2)
append
的结果,即None
被分配回elem_copy
在第二种情况下
elem_copy=deepcopy(elem1)
elem_copy.append(elem2)
未append
的结果分配回elem_copy
。
结果, elem_copy
的元素由deepcopy
返回,并附加了第二个元素。
希望能有所帮助。