brysj22952 avatar

PyH源码解析(4)

brysj22952

Published: 11 Aug 2018 › Updated: 11 Aug 2018

PyH源码解析(4)

增加兄弟Tag对象

这个实际上就是Tag对象的序列,如下所示:

>>> a=div('a1')+div('a2')+div('a3')
>>> print(a)
<div>
a1
</div>
<div>
a2
</div>
<div>
a3
</div>

其实现原理就是重载了+操作符,上面例子中的返回对象a是一个特殊的Tag对象,它没有tagname,它的isSeq属性为True,表示它容纳了一个Tag的序列。

为Tag对象追加内容和子对象

这里使用了<<符号,如下示例:

>>> a=div()
>>> a<<'test'
>>> a<<div(id='abc')
>>> print(a)
<div>
test
<div id="abc">
</div>
</div>

其实现原理很简单,就是直接调用self.addObj()即可。只不过需要注意的是,其返回对象是其子Tag对象,以便<<可以连续使用。另外需要注意的是,如果追加的tag是一个序列Tag对象,则把它展开,每一个成员作为子Tag追加。

Leave PyH源码解析(4) to:

Written by

Read more #cn posts


Best Posts From brysj22952

We have not curated any of brysj22952's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From brysj22952