广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中怎么声明解析器函数
  • 737
分享到

Python中怎么声明解析器函数

2023-06-17 16:06:59 737人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

本篇文章给大家分享的是有关python中怎么声明解析器函数,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。首先初步了解 DParser 这一由 J. Plevyak 编写的简单而

本篇文章给大家分享的是有关python中怎么声明解析器函数,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

首先初步了解 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频道。

--结束END--

本文标题: Python中怎么声明解析器函数

本文链接: https://www.lsjlt.com/news/290772.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中怎么声明解析器函数
    本篇文章给大家分享的是有关Python中怎么声明解析器函数,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。首先初步了解 DParser 这一由 J. Plevyak 编写的简单而...
    99+
    2023-06-17
  • Python怎么做函数声明
    在Python中使用def关键字声明函数,具体方法如下:def关键字语法:def 函数名(形参列表)://由零条到多条可执行语句组成的代码块[return [返回值]]def关键字使用方法:def my_max(x, y) :# 定义一个变...
    99+
    2022-10-12
  • 怎么声明JavaScript中函数
    本篇内容主要讲解“怎么声明JavaScript中函数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么声明JavaScript中函数”吧! ...
    99+
    2022-10-19
  • javascript中的函数怎么声明
    这篇文章主要介绍了javascript中的函数怎么声明,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 在js中,...
    99+
    2022-10-19
  • 怎么在javascript中声明函数
    怎么在javascript中声明函数?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、使用函数的结构函数在这种方法中,函数是在函数结构函数的帮助下创建的。技术上,这种方法比使用...
    99+
    2023-06-15
  • python函数怎么声明全局变量
    在python中为函数声明全局变量的两种方法使用列表声明全局变量global_var_list = []def update_global_var_list(var):global_var_list.append(var)使用字典声明全局变...
    99+
    2022-10-12
  • Javascript中怎么实现函数声明和函数表达式
    Javascript中怎么实现函数声明和函数表达式,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Javascript是一种由N...
    99+
    2022-10-19
  • c语言怎么声明一个函数
    在C语言中,可以使用以下格式来声明一个函数:返回类型 函数名称(参数列表);其中,- 返回类型指定函数的返回值类型,可以是基本数据类...
    99+
    2023-09-27
    c语言
  • C#中怎么声明数组
    今天就跟大家聊聊有关C#中怎么声明数组,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C#声明数组时,方括号([])必须跟在类型后面,而不是标识符后面。在C#中,将方括号放在标识符后是...
    99+
    2023-06-17
  • 详解PHP中函数声明与使用方法
    PHP是一种强大的、开源的服务器端脚本语言,广泛用于Web开发。其中,函数(function)是PHP中最重要的组成部分之一。函数是一段可重复使用的代码块,用于执行特定的任务。本文将介绍PHP中函数的使用方法。声明函数声明函数是指定义函数名...
    99+
    2023-05-14
    php php函数
  • python如何在函数声明中使用默认值
    小编给大家分享一下python如何在函数声明中使用默认值,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在函数声明中使用默认值在几乎所有的Python项目中,大多数...
    99+
    2023-06-27
  • Python中关键字nonlocal和global的声明与解析
    一、Python中global与nonlocal 声明 如下代码 a = 10 def foo(): a = 100 执行foo() 结果 a 还是10 函数中对变量的赋值,变量始终绑...
    99+
    2022-06-04
    关键字 声明 Python
  • Python使用什么关键字声明匿名函数
    在Python中一般使用lambda对匿名函数进行声明,具体方法如下:lambda语法:lambda x:x*x #lambda关键字表示匿名函数,冒号前边x表示传递的参数,后边是返回的结果。lambda使用方法:li = [1,2,3]n...
    99+
    2022-10-23
  • ES6中生成器函数的声明与调用
    这篇文章主要介绍ES6中生成器函数的声明与调用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!生成器函数的声明与调用生成器函数是ES6提供的一种异步编程解决方案,与传统函数完全不同,就...
    99+
    2022-10-19
  • Javascript中怎么实现函数声明与递归调用
    Javascript中怎么实现函数声明与递归调用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、函数声明变量式声明先创建一个匿名函数,然后把...
    99+
    2022-10-19
  • TypeScript中怎么使用Tuple Union声明函数重载
    这篇文章主要介绍“TypeScript中怎么使用Tuple Union声明函数重载”,在日常操作中,相信很多人在TypeScript中怎么使用Tuple Union声明函数重载问题上存在疑惑,小编查阅...
    99+
    2023-06-29
  • 使用Kotlin怎么定义函数与声明变量
    使用Kotlin怎么定义函数与声明变量?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Kotlin基础教程之函数定义与变量声明可以看到,函数定义就是 <访问控制符> ...
    99+
    2023-05-31
    kotlin 声明变量 函数定义
  • python怎么看函数说明
    在python中使用help方法查看函数说明,具体方法如下:首先,在计算机中打开python自带的集成开发环境IDLE;IDLE打开后,在IDLE中输入以下命令,查看python中的函数;dir(__builtins__)查看到python...
    99+
    2022-10-04
  • JavaScript中的变量声明怎么理解
    这篇文章的内容主要围绕JavaScript中的变量声明怎么理解进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!变量ECMAScript中,变量可以保存...
    99+
    2023-06-29
  • 举例讲解Python的lambda语句声明匿名函数的用法
    所谓匿名函数,即是不需要定义函数,像表达式一样使用,不需要函数名(很多时候名字让我很困扰),一些简单的函数简单化, 举个例子 我需要两个整数相加的函数,通常是这么定义的 def add(x, y): ...
    99+
    2022-06-04
    语句 函数 声明
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作