自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用Python這么多年,才發(fā)現(xiàn)Python還有這些實(shí)用的功能和特點(diǎn)

開(kāi)發(fā) 后端
在使用Python多年以后,我偶然發(fā)現(xiàn)了一些我們過(guò)去不知道的功能和特性。一些可以說(shuō)是非常有用,但卻沒(méi)有充分利用??紤]到這一點(diǎn),我編輯了一些你應(yīng)該了解的Python功能特色。

[[239064]]

 

在使用Python多年以后,我偶然發(fā)現(xiàn)了一些我們過(guò)去不知道的功能和特性。一些可以說(shuō)是非常有用,但卻沒(méi)有充分利用。考慮到這一點(diǎn),我編輯了一些你應(yīng)該了解的Python功能特色。

帶任意數(shù)量參數(shù)的函數(shù)

你可能已經(jīng)知道了Python允許你定義可選參數(shù)。但還有一個(gè)方法,可以定義函數(shù)任意數(shù)量的參數(shù)。

首先,看下面是一個(gè)只定義可選參數(shù)的例子

使用Python這么多年,才發(fā)現(xiàn)Python還有這些實(shí)用的功能和特點(diǎn)

 

現(xiàn)在,讓我們看看怎么定義一個(gè)可以接受任意參數(shù)的函數(shù)。我們利用元組來(lái)實(shí)現(xiàn)。

使用Python這么多年,才發(fā)現(xiàn)Python還有這些實(shí)用的功能和特點(diǎn)

 

使用Glob()查找文件

大多Python函數(shù)有著長(zhǎng)且具有描述性的名字。但是命名為glob()的函數(shù)你可能不知道它是干什么的除非你從別處已經(jīng)熟悉它了。

它像是一個(gè)更強(qiáng)大版本的listdir()函數(shù)。它可以讓你通過(guò)使用模式匹配來(lái)搜索文件。

使用Python這么多年,才發(fā)現(xiàn)Python還有這些實(shí)用的功能和特點(diǎn)

 

你可以像下面這樣查找多個(gè)文件類型:

使用Python這么多年,才發(fā)現(xiàn)Python還有這些實(shí)用的功能和特點(diǎn)

 

如果你想得到每個(gè)文件的絕對(duì)路徑,你可以在返回值上調(diào)用realpath()函數(shù):

使用Python這么多年,才發(fā)現(xiàn)Python還有這些實(shí)用的功能和特點(diǎn)

 

調(diào)試

下面的例子使用inspect模塊。該模塊用于調(diào)試目的時(shí)是非常有用的,它的功能遠(yuǎn)比這里描述的要多。

這篇文章不會(huì)覆蓋這個(gè)模塊的每個(gè)細(xì)節(jié),但會(huì)展示給你一些用例。

使用Python這么多年,才發(fā)現(xiàn)Python還有這些實(shí)用的功能和特點(diǎn)

 

生成唯一ID

在有些情況下你需要生成一個(gè)唯一的字符串。我看到很多人使用md5()函數(shù)來(lái)達(dá)到此目的,但它確實(shí)不是以此為目的。

其實(shí)有一個(gè)名為uuid()的Python函數(shù)是用于這個(gè)目的的。

使用Python這么多年,才發(fā)現(xiàn)Python還有這些實(shí)用的功能和特點(diǎn)

 

你可能會(huì)注意到,即使字符串是唯一的,但它們后邊的幾個(gè)字符看起來(lái)很相似。這是因?yàn)樯傻淖址c電腦的MAC地址是相聯(lián)系的。

為了減少重復(fù)的情況,你可以使用這兩個(gè)函數(shù)。

使用Python這么多年,才發(fā)現(xiàn)Python還有這些實(shí)用的功能和特點(diǎn)

 

序列化

你曾經(jīng)需要將一個(gè)復(fù)雜的變量存儲(chǔ)在數(shù)據(jù)庫(kù)或文本文件中吧?你不需要想一個(gè)奇特的方法將數(shù)組或?qū)ο蟾褶D(zhuǎn)化為式化字符串,因?yàn)镻ython已經(jīng)提供了此功能。

使用Python這么多年,才發(fā)現(xiàn)Python還有這些實(shí)用的功能和特點(diǎn)

 

這是一個(gè)原生的Python序列化方法。然而近幾年來(lái)JSON變得流行起來(lái),Python添加了對(duì)它的支持。現(xiàn)在你可以使用JSON來(lái)編解碼。

使用Python這么多年,才發(fā)現(xiàn)Python還有這些實(shí)用的功能和特點(diǎn)

 

這樣更緊湊,而且最重要的是這樣與JavaScript和許多其他語(yǔ)言兼容。然而對(duì)于復(fù)雜的對(duì)象,其中的一些信息可能丟失。

壓縮字符

當(dāng)談起壓縮時(shí)我們通常想到文件,比如ZIP結(jié)構(gòu)。在Python中可以壓縮長(zhǎng)字符,不涉及任何檔案文件。

使用Python這么多年,才發(fā)現(xiàn)Python還有這些實(shí)用的功能和特點(diǎn)

 

注冊(cè)Shutdown函數(shù)

有可模塊叫atexit,它可以讓你在腳本運(yùn)行完后立馬執(zhí)行一些代碼。

假如你想在腳本執(zhí)行結(jié)束時(shí)測(cè)量一些基準(zhǔn)數(shù)據(jù),比如運(yùn)行了多長(zhǎng)時(shí)間:

使用Python這么多年,才發(fā)現(xiàn)Python還有這些實(shí)用的功能和特點(diǎn)

 

打眼看來(lái)很簡(jiǎn)單。只需要將代碼添加到腳本的***層,它將在腳本結(jié)束前運(yùn)行。但如果腳本中有一個(gè)致命錯(cuò)誤或者腳本被用戶終止,它可能就不運(yùn)行了。

當(dāng)你使用atexit.register()時(shí),你的代碼都將執(zhí)行,不論腳本因?yàn)槭裁丛蛲V惯\(yùn)行。 

責(zé)任編輯:龐桂玉 來(lái)源: 今日頭條
相關(guān)推薦

2021-01-05 07:00:53

微信隱藏功能移動(dòng)應(yīng)用

2024-02-20 08:09:51

Java 8DateUtilsDate工具類

2023-11-13 08:49:54

2022-05-29 08:54:44

Edge瀏覽器

2017-06-16 16:16:36

庫(kù)存扣減查詢

2021-01-14 05:08:44

編譯鏈接

2017-07-04 14:01:40

機(jī)房機(jī)柜

2020-07-21 18:37:14

代碼條件變量

2024-05-13 16:22:25

固態(tài)硬盤接口硬盤

2015-03-27 10:20:41

谷歌地圖谷歌偉大

2018-05-29 14:57:59

HashMap容量初始化

2021-02-03 20:19:08

Istio流量網(wǎng)格

2021-02-03 08:24:32

JavaScript技巧經(jīng)驗(yàn)

2021-08-28 06:04:16

微信技巧騰訊

2017-03-27 11:29:33

微軟Windows XP安全

2022-03-03 07:00:43

Mybatiswhere標(biāo)簽

2021-01-11 13:46:26

Spring BootThymeleafJava

2024-01-31 12:34:16

panic錯(cuò)誤檢測(cè)recover

2024-03-07 12:54:00

AI模型

2025-04-18 09:31:19

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)