当前位置: 首页 > 科技观察

用了这么多年Python,才发现原来Python还有这些好用的功能和特性

时间:2023-03-19 01:13:53 科技观察

在用了这么多年Python,偶然发现了一些以前不知道的功能和特性。有些可以说非常有用,但未得到充分利用。考虑到这一点,我整理了一些您应该了解的Python特性。具有任意数量参数的函数您可能已经知道Python允许您定义可选参数。但是还有另一种方法可以定义具有任意数量参数的函数。首先,请参阅以下仅定义可选参数的示例。现在,让我们看看如何定义一个可以接受任意参数的函数。我们使用元组来做到这一点。使用Glob()查找文件大多数Python函数都有很长的描述性名称。但是名为glob()的函数您可能不知道它的作用,除非您已经从其他地方熟悉它。它就像listdir()函数的更强大版本。它允许您使用模式匹配来搜索文件。您可以像这样搜索多种文件类型:如果您想获取每个文件的绝对路径,您可以在返回值上调用realpath()函数:使用inspect模块调试以下示例。此模块可用于调试目的,并且具有比此处描述的更多的功能。本文不会涵盖此模块的所有细节,但会向您展示一些用例。生成唯一ID在某些情况下,您需要生成一个唯一的字符串。我已经看到很多人为此目的使用md5()函数,但它确实不是为这个目的而设计的。为此,实际上有一个名为uuid()的Python函数。您可能会注意到,尽管字符串是唯一的,但接下来的几个字符看起来很相似。这是因为生成的字符串与计算机的MAC地址相关联。为了减少重复,您可以使用这两个函数。序列化您是否曾经需要将复杂变量存储在数据库或文本文件中?您不需要想出一种奇特的方法来将数组或对象格转换为格式化字符串,因为Python已经提供了此功能。这是一种原生的Python序列化方法。然而近年来JSON开始流行,Python也增加了对它的支持。现在您可以使用JSON进行编码和解码。这更紧凑,最重要的是与JavaScript和许多其他语言兼容。但是,对于复杂的对象,可能会丢失一些信息。压缩字符当我们谈论压缩时,我们通常会想到文件,例如ZIP结构。在不涉及任何归档文件的情况下,可以在Python中压缩长字符。注册Shutdown函数有一个名为atexit的模块,它允许您在脚本运行完成后立即执行一些代码。假设你想在脚本执行结束时测量一些基准数据,比如运行了多长时间:乍一看似乎很容易。只需在脚本的顶层添加代码,它就会在脚本结束前运行。但如果脚本中存在致命错误或脚本被用户终止,它可能不会运行。当你使用atexit.register()时,无论脚本停止运行的原因是什么,你的代码都会被执行。