如何从其构造函数中设置ElementTree Element的文本字段?或者,在下面的代码中,为什么root.text的第二次打印无?
import xml.etree.ElementTree as ET
root = ET.fromstring("<period units='months'>6</period>")
ET.dump(root)
print root.text
root=ET.Element('period', {'units': 'months'}, text='6')
ET.dump(root)
print root.text
root=ET.Element('period', {'units': 'months'})
root.text = '6'
ET.dump(root)
print root.text
Run Code Online (Sandbox Code Playgroud)
这里输出:
<period units="months">6</period>
6
<period text="6" units="months" />
None
<period units="months">6</period>
6
Run Code Online (Sandbox Code Playgroud) 我从python.org unittest文档中逐字复制了这个:
import random
import unittest
class TestSequenceFunctions(unittest.TestCase):
def setUp(self):
self.seq = range(10)
def test_shuffle(self):
# make sure the shuffled sequence does not lose any elements
random.shuffle(self.seq)
self.seq.sort()
self.assertEqual(self.seq, range(10))
# should raise an exception for an immutable sequence
self.assertRaises(TypeError, random.shuffle, (1,2,3))
def test_choice(self):
element = random.choice(self.seq)
self.assertTrue(element in self.seq)
def test_sample(self):
with self.assertRaises(ValueError):
random.sample(self.seq, 20)
for element in random.sample(self.seq, 5):
self.assertTrue(element in self.seq)
if __name__ == '__main__':
unittest.main()
Run Code Online (Sandbox Code Playgroud)
但是我从linux2上的python 2.7.2 [GCC 4.1.2 20080704(Red Hat 4.1.2-51)]中得到了这个错误信息:
.E.
======================================================================
ERROR: test_sample …Run Code Online (Sandbox Code Playgroud)