安装Python 解析器函数声明

开发 后端
假如你安装了Python 解析器,这些功能都是可用的除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图形库等等数不胜数。

在标准Python 解析器中,有关缺省变量值的限制非常模糊。基于此,很多编译器允许开发人员将缺省变量值包含在函数声明,指向函数的指针和引用,成员函数的指针,以及typedef声明中。

首先初步了解 DParser 这一由 J. Plevyak 编写的简单而强大的解析工具。然后了解用于 Python 的 DParser,它为 Python 程序员提供了一个访问 DParser 的无缝接口,并看看它与上一期中介绍的解析器的比较。语法规则以类似于 Spark 或 PLY 的方式通过 Python 函数文档字符串加入到 DParser 中。 有很多可用的 Python 解析器程序库。

DParser 与所有其他解析器的不同之处是什么?是这样,类似于 PLY 和 Spark,用于 Python 的 DParser 使用函数文档字符串来表示其结果(productions)。这种风格使得您可以将动作代码直接插入到一个结果中,以处理当一个特定的语法规则得到满足时将发生的事件。

与 PLY 或 Spark 相反,DParser 本身是用 C 编写的,因而可能会比纯粹的 Python 解析器快得多。用于 Python 的 DParser 是底层的 C 程序库之外的一个非常精简的包装器(wrapper) —— 对 Python 的回调需要一些额外的时间。

但是基本的解析是以 C 语言的速度来进行的。不过,就本文而言,我没有尝试进行任何具体的基准测试。所以,相对于其他解析器来说,DParser 到底有多快或多慢不是我所能直接评论的。有很多读者推荐说用于 Python DParaser 值得关注。顺便提一句,如您将在示例中所看到的,DParser 不使用任何单独的标记传递。

而只是直接解析。您可以通过定义保留的 d_whitespace() 函数来控制空格的识别(它分离解析符号);这样就使得您可以随意使用标记。 后面跟有问号的结果是推测性的尝试;那些后面其实没有最终的结果。与此相关, DParser 让您有能力当结果成为推测的或者是最终解析时采取不同的动作。

默认情况下,函数体中的动作只作用于最终解析。不过,您可以向结果指定两个额外参数中的一个来处理推测性解析。(还有很多本文中没有讨论的选项参数。) 尽管得到了一些读者的建议,我还是不太看重 DParser。它有很多可以作用于结果的强大的开关和选项,我还没有讨论到 —— 比如指定关联性。

大体上,DParser 语言非常健壮,我非常怀疑用于 Python 的 DParser 是否会比纯粹的 Python 解析器运行速度快得非常多。 无论如何,我仍然不能对函数文档字符串风格的解析器具有太多热情。显然,关于这一点,很多优秀的 Python 程序员不会赞同我。

此外我还发现一些解析结果有些令人不解:为什么调试模式下可以成功,而标准模式下却不能成功?含糊问题确切是什么时候发生的?使用任何解析工具开发语法都会有类似的意外,但是我发现 DParser 不知何故尤其出乎意料;例如 SimpleParse,就不会让我那么感到惊讶。

可能,如果我了解了底层算法的更多复杂细节,它将会更具意义;不过,就我相对浅薄的学识而言,我可能与 95% 以上的读者差不多。有人比我更加熟悉解析;但是实际上大部分程序员懂得更少。

Python是一门功能强大的高级脚本语言,它的强大不仅表现在其自身的功能上,而且还表现在其良好的可扩展性上,正因如此,Python已经开始受到越来越多人的青睐,并且被屡屡成功地应用于各类大型软件系统的开发过程中。

与其它普通脚本语言有所不同,Python程序员可以借助Python语言提供的API,使用C或者C++来对Python进行功能性扩展,从而即可以利用Python方便灵活的语法和功能,又可以获得与C或者C++几乎相同的执行性能。

执行速度慢是几乎所有脚本语言都具有的共性,也是倍受人们指责的一个重要因素,Python则通过与C语言的有机结合巧妙地解决了这一问题,从而使脚本语言的应用范围得到了很大扩展。

在用Python 解析器开发实际软件系统时,很多时候都需要使用C/C++来对Python进行扩展。最常见的情况是目前已经存在一个用C编写的库,需要在Python语言中使用该库的某些功能。

此时就可以借助Python提供的扩展功能来实现。此外,由于Python从本质上讲还是一种脚本语言,某些功能用Python实现可能很难满足实际软件系统对执行效率的要求,此时也可以借助Python提供的扩展功能,将这些关键代码段用C或者C++实现,从而提供程序的执行性能。

【编辑推荐】

  1. 有关Python系统文件进行介绍指导
  2. 如何正确的使用Python函数
  3. 对Python 构建工具进行详细介绍分析
  4. PythonAndroid浅析Python优势所在
  5. 如何使用Python模块解析配置文件?
责任编辑:chenqingxiang 来源: CSDN
相关推荐

2010-02-22 13:38:50

Python解析器

2009-03-19 09:26:05

RSS解析器MagpieRSS

2022-06-21 09:38:52

UnboundDNSLinux

2020-12-02 10:13:45

JacksonJDK解析器

2014-05-06 09:27:54

2022-02-14 13:58:32

操作系统JSON格式鸿蒙

2021-03-18 10:56:59

SpringMVC参数解析器

2014-05-15 09:45:58

Python解析器

2023-12-30 13:33:36

Python解析器JSON

2009-12-14 18:59:27

Ruby解析器

2022-10-20 11:00:52

SQL解析器

2010-01-07 17:24:31

JSON 解析器

2009-01-03 14:39:00

ibmdwSpirit

2010-03-05 10:14:53

Ubuntu ruby

2019-07-05 08:39:39

GoSQL解析器

2021-10-03 15:02:50

HTTPNodejs

2011-04-01 16:16:27

JavaScript

2020-06-17 11:42:50

异常解析器Spring MVC

2009-12-09 10:31:32

ibmdwJava

2021-03-16 10:39:29

SpringBoot参数解析器
点赞
收藏

51CTO技术栈公众号