小编lan*_*eau的帖子

tostring中的pretty_print选项在lxml中不起作用

我正在尝试在XML中使用tostring方法来获取XML的"漂亮"版本作为字符串.lxml站点上的示例显示了此示例:

>>> import lxml.etree as etree
>>> root = etree.Element("root")
>>> print(root.tag)
root
>>> root.append( etree.Element("child1") )
>>> child2 = etree.SubElement(root, "child2")
>>> child3 = etree.SubElement(root, "child3")
>>> print(etree.tostring(root, pretty_print=True))
<root>
  <child1/>
  <child2/>
  <child3/>
</root>
Run Code Online (Sandbox Code Playgroud)

但是我的输出,运行那些确切的行是:

b'<root>\n  <child1/>\n  <child2/>\n  <child3/>\n</root>\n'
Run Code Online (Sandbox Code Playgroud)

我安装的lxml版本是否有错误?从教程中逐字逐句的单词似乎很奇怪.

python xml lxml

12
推荐指数
1
解决办法
4825
查看次数

unique_ptr替代动态分配的数组

我写了一个类,必须与一些旧代码接口,这些代码需要一些C风格的数组(或者至少是指向第一个元素的指针)作为参数.

这些数组是我的类的成员,它们特别大(50kb)所以我想把它们放在堆上,这样我的类的对象在堆栈上不是很大.我非常相信使用资源管理对象,所以我宁愿不自己在堆上管理这些数组.

我发现使用unique_ptr特别适合这项工作.例如:

std::unique_ptr<SOMETYPE[]> someArrayName

和使用:

someArrayName(new SOMETYPE[someLargeSize])

在我的构造函数的初始化列表中.这允许我使用这些作为常规C数组的.get()方法,使用需要作为参数的函数的方法,我不必自己管理内存.但我刚刚意识到我的同事(实际编译我们的代码的版本)仍然在VS2008上,显然缺乏对C++ 0x功能的支持unique_ptr.首先,我目前使用unique_ptr的解决方案是一个好的解决方案吗?如果是这样的话,是否有一个替代品来维持我需要的所有行为,比如提升?

c++ arrays boost unique-ptr

4
推荐指数
1
解决办法
1623
查看次数

标签 统计

arrays ×1

boost ×1

c++ ×1

lxml ×1

python ×1

unique-ptr ×1

xml ×1