使用Python这么多年,才发现Python还有这些实用的功能和特点

开发 后端
在使用Python多年以后,我偶然发现了一些我们过去不知道的功能和特性。一些可以说是非常有用,但却没有充分利用。考虑到这一点,我编辑了一些你应该了解的Python功能特色。

[[239064]]

 

在使用Python多年以后,我偶然发现了一些我们过去不知道的功能和特性。一些可以说是非常有用,但却没有充分利用。考虑到这一点,我编辑了一些你应该了解的Python功能特色。

带任意数量参数的函数

你可能已经知道了Python允许你定义可选参数。但还有一个方法,可以定义函数任意数量的参数。

首先,看下面是一个只定义可选参数的例子

使用Python这么多年,才发现Python还有这些实用的功能和特点

 

现在,让我们看看怎么定义一个可以接受任意参数的函数。我们利用元组来实现。

使用Python这么多年,才发现Python还有这些实用的功能和特点

 

使用Glob()查找文件

大多Python函数有着长且具有描述性的名字。但是命名为glob()的函数你可能不知道它是干什么的除非你从别处已经熟悉它了。

它像是一个更强大版本的listdir()函数。它可以让你通过使用模式匹配来搜索文件。

使用Python这么多年,才发现Python还有这些实用的功能和特点

 

你可以像下面这样查找多个文件类型:

使用Python这么多年,才发现Python还有这些实用的功能和特点

 

如果你想得到每个文件的绝对路径,你可以在返回值上调用realpath()函数:

使用Python这么多年,才发现Python还有这些实用的功能和特点

 

调试

下面的例子使用inspect模块。该模块用于调试目的时是非常有用的,它的功能远比这里描述的要多。

这篇文章不会覆盖这个模块的每个细节,但会展示给你一些用例。

使用Python这么多年,才发现Python还有这些实用的功能和特点

 

生成唯一ID

在有些情况下你需要生成一个唯一的字符串。我看到很多人使用md5()函数来达到此目的,但它确实不是以此为目的。

其实有一个名为uuid()的Python函数是用于这个目的的。

使用Python这么多年,才发现Python还有这些实用的功能和特点

 

你可能会注意到,即使字符串是唯一的,但它们后边的几个字符看起来很相似。这是因为生成的字符串与电脑的MAC地址是相联系的。

为了减少重复的情况,你可以使用这两个函数。

使用Python这么多年,才发现Python还有这些实用的功能和特点

 

序列化

你曾经需要将一个复杂的变量存储在数据库或文本文件中吧?你不需要想一个奇特的方法将数组或对象格转化为式化字符串,因为Python已经提供了此功能。

使用Python这么多年,才发现Python还有这些实用的功能和特点

 

这是一个原生的Python序列化方法。然而近几年来JSON变得流行起来,Python添加了对它的支持。现在你可以使用JSON来编解码。

使用Python这么多年,才发现Python还有这些实用的功能和特点

 

这样更紧凑,而且最重要的是这样与JavaScript和许多其他语言兼容。然而对于复杂的对象,其中的一些信息可能丢失。

压缩字符

当谈起压缩时我们通常想到文件,比如ZIP结构。在Python中可以压缩长字符,不涉及任何档案文件。

使用Python这么多年,才发现Python还有这些实用的功能和特点

 

注册Shutdown函数

有可模块叫atexit,它可以让你在脚本运行完后立马执行一些代码。

假如你想在脚本执行结束时测量一些基准数据,比如运行了多长时间:

使用Python这么多年,才发现Python还有这些实用的功能和特点

 

打眼看来很简单。只需要将代码添加到脚本的***层,它将在脚本结束前运行。但如果脚本中有一个致命错误或者脚本被用户终止,它可能就不运行了。

当你使用atexit.register()时,你的代码都将执行,不论脚本因为什么原因停止运行。 

责任编辑:庞桂玉 来源: 今日头条
相关推荐

2021-01-05 07:00:53

微信隐藏功能移动应用

2023-11-13 08:49:54

2024-02-20 08:09:51

Java 8DateUtilsDate工具类

2022-05-29 08:54:44

Edge浏览器

2017-06-16 16:16:36

库存扣减查询

2021-01-14 05:08:44

编译链接

2017-07-04 14:01:40

机房机柜

2020-07-21 18:37:14

代码条件变量

2015-03-27 10:20:41

谷歌地图谷歌伟大

2018-05-29 14:57:59

HashMap容量初始化

2017-03-27 11:29:33

微软Windows XP安全

2021-08-28 06:04:16

微信技巧腾讯

2021-02-03 20:19:08

Istio流量网格

2021-02-03 08:24:32

JavaScript技巧经验

2022-03-03 07:00:43

Mybatiswhere标签

2024-01-31 12:34:16

panic错误检测recover

2021-01-11 13:46:26

Spring BootThymeleafJava

2024-03-07 12:54:00

AI模型

2021-05-03 23:41:42

微信功能知识

2024-01-02 12:48:49

点赞
收藏

51CTO技术栈公众号