Published: 12 Aug 2018 › Updated: 12 Aug 2018
PyH源码解析(6)——完结篇
这一篇是精华,基本上不用阅读之前的5篇,只看这一篇就足够了。
Tag对象
PyH的核心就是Tag对象,Tag对象属性有:
- str tagname:这个就是tag对象的tag名字。比如
<div>对象,其名字就div。但是有一些Tag对象没有名字,当然真实的HTML是没有的,在实现代码中,没有Tag名字的对象表示它是一个容器对象,存放的是子Tag的序列,表示若干兄弟Tag的列表。 - bool isSeq:这个就是表示在tagname中提到的容器对象,也就是tagname为空的对象,它存放的Tag的序列。
- str id:表示Tag对象的索引id。特别注意的是,它不同于Tag元素的id属性。如果有ID属性,则它的值就是ID属性,如果没ID属性,它的值为Tag的名字,如果有多个相同的id,则在其后增加001等类似的序列区分。
-dict attr:这是属性字典,存放的是Tag对象的属性,key为属性名称,value是内容。需要注意的是class名称替换为cl表示。
-list self:Tag对象继承自list,list中存放的是它包括的内容和子Tag对象。
Tag对象的方法:
- bool IsSelfClose():有些Tag对象是没有内容的,比如
img xxxx,这个属性就是表示这个的,它在生成HTML字符串时与普通的Tag是不同的。 - str render():返回Tag对象表示的html字符串。
- Tag add(Tag obj):
+操作符重载,表示两个兄弟Tag对象,返回的是一个容器对象。 - Tag iadd(Tag obj):
+=操作符重载,表示给当前Tag对象增加内容或者子Tag对象,如果obj为容器对象,则会展开分别作为子Tag加入。 - Tag lshift(Tag obj):
<<操作符重载,同+=类似,只是返回的是obj对象,以便<<可以多个连接起来。 - str str():表示Tag对象的字符串表达形式。
PyH对象
PyH用于生成整个HTML对象,它继承自Tag对象,只不过增加了一些便捷的操作。如下:
- iadd():当向PyH对象添加内容或者子Tag时,相当于给其Body对象增加。
- addJS():增加JS脚本。
- addCSS():增加CSS。
Leave PyH源码解析(6)——完结篇 to:
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
- 我为什么想自己实现语法解析器
- PyH源码解析(6)——完结篇
- PyH源码解析(5)
- PyH源码解析(4)
- PyH源码解析(3)
- PyH源码解析(2)
- PyH源码解析(1)
- Python语言PyH模块生成HTML文档使用说明
- linux屏蔽ctrl+s键的方法
- LXML官方文档翻译
- 使用Flask和React构建博客系统(1)
- 解决网站开发中网页在手机上显示不全的问题
- 2018.6.25 My microblog 微博
- MyBrain项目(1)
- 2018.3.20 My microblog 微博
- click的命令自动补齐功能介绍
- python命令行神器click介绍
- Linux find命令使用心得(Linux find cmd use experience)
- Piston工具翻译-Steem网络的瑞士军刀(2)
- Piston工具翻译-Steem网络的瑞士军刀(1)