我想扩展python,以便您可以创建层次 树结构(XML,HTML等)更容易 比今天使用ElementTree之类的软件包写作更可读性 和xist. 我不想更换包裹,但是包裹可以与 这 新的操作员和由此产生的恕我直言更具可读性. 我想要的语法类似于以下内容: #示例创建HTML树 '*!*'是创建新节点的操作员, '*=*'是设置属性的操作员. 因此,如果您以示例来构建Smalle网页 并与现在在元素树中的外观进行比较 以及abover操作员存在时的外观. 带有元素树包. #建立树结构 root = et.element(" html") head = et.subelement(root," head") title = et.Subelement(头,"标题") title.text ="页面标题" 身体= Et.Subelement(root,"身体") body.set(" bgcolor"," #ffffff") body.text ="你好,世界!" 与句法糖: #建立树结构 root = et.element(" html") *!*根: *!*head(" head"): *!*标题("标题): *=*text ="页面标题" *!*身体("身体"): *=*bgcolor =" #ffffff" *=*text ="你好,世界!" 我认为,随着添加的语法,您可以更好地了解HTML 页. 重复事物消失,您会得到与之相对应的缩进 那个树. 我认为这是非常卑鄙的恕我直言. 可以做到很通用. 如果是变量,请在"*!*"之后对象. 必须支持附加 方法,如果您使用'*=*',它必须支持__setitem__ 任何意见?
# 回答1 格洛姆德写道: 鉴于python没有句法糖 普遍作为正则表达式,不难预测 这个建议的运气. 祝你好运,将其推向前进. 乔治
# 回答2 Glomde Schrieb: 这很丑陋,并且可以使用内置的培养地轻松实现,列表 和词典以及简单的遍历函数. 这样(未经测试): 类节点(对象): def __init __(自我,价值): self.value = vallue self._childs = [] def append(自我,孩子): self._childs.append(儿童) t =('root', ('child1, ('孙子',()), 'child2', () ) ) def create_node(t): 价值,childs = t n =节点(值) 如果孩子: 对于CH的孩子: n.append(create_node(ch)) 返回n 恕我直言,基于元组的树比您的建议更可读 - 而且无需提出新的语法. diez
# 回答3 " glomde" 写道: 添加新的标点符号来处理特定类型非常 联合国情调. - - \"一件事情的成本是我所说的生活的数量| `\需要立即或长时间换取它. _o__)运行." - 亨利·戴维·梭罗| 本·芬尼
# 回答4 格洛姆德写道: 寻找Pyyaml. 这可能是您想要的. - 斯科特·戴维·丹尼尔斯(Scott David Daniels) 有一些差异非常重要. 首先我不 t SE您如何设置该属性和 然后,我看不到如何将Python代码与创建混合. 那么您如何做到这一点: root = et.element(" html") *!*根: *!*head(" head"): *!*标题("标题): 因为我在各节中: !*! 部分(): *=*text =部分[i]
# 回答5 但是,创建节点时,您不能将Python代码混合在其中. 那时候它变得非常丑陋,这是我的不可行的. 但是我也很高兴地认为这是这样的: #建立树结构 root = et.element(" html") *!*根: *!*head(" head"): *!*标题("标题): *=*text ="页面标题" *!*身体("身体"): *=*bgcolor =" #ffffff" *=*text ="你好,世界!" 尤其是如果您开始拥有更深的层次. 但是大 其他优先是你可以 在Beetweed中有任何Python代码.
# 回答6 实际上我们确实从YAML开始,但意识到我们需要拥有 动力 编程语言同样的语言. 但我想提出 看起来的东西 非常接近YAML,因为我发现它很可读. 我已经实施了语法,但是作为Python的预处理器 工作非常好. 干杯, t
# 回答7 格洛姆德写道: 您可以将任何python表达式放在那里,在节点类中可以做 你想要什么. 似乎您正在追求一个模板系统. 好吧,有很多 可用,包括您的. 预处理器不过是模板系统 - 例如,请参见turbogears-putilized Kid(http://kid.lesscode.org/) 生成Python文件. 而且更可读性,因为您正在工作 您的应用程序的域(HTML)而不是某些原油语法 既不是鱼或肉. 反问题:您如何创建这个: <头> <标题py:content =" title" /> <身体bgcolor ="蓝色" text =" Yellow">