chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一些值得玩味的python代碼

python爬蟲(chóng)知識(shí)分享 ? 來(lái)源:python爬蟲(chóng)知識(shí)分享 ? 作者:python爬蟲(chóng)知識(shí)分享 ? 2022-03-30 17:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

選取了 6 個(gè)自己認(rèn)為值得玩味的 python 代碼,希望對(duì)正在學(xué)習(xí) python 的你有所幫助。

1、類有兩個(gè)方法,一個(gè)是 __new__,一個(gè)是 __init__,有什么區(qū)別,哪個(gè)會(huì)先執(zhí)行呢?

classtest(object):
def__init__(self):
print("test->__init__")

def__new__(cls):
print("test->__new__")
returnsuper().__new__(cls)

a=test()

運(yùn)行結(jié)果如下:

test->__new__
test->__init__

再來(lái)看另一個(gè)例子

classtest2(object):
def__init__(self):
print("test2->__init__")

def__new__(cls):
print("test2->__new__")
returnobject()

b=test2()

運(yùn)行結(jié)果如下:

test2->__new__

這里給出官方的解釋:__init__ 作用是類實(shí)例進(jìn)行初始化,第一個(gè)參數(shù)為 self,代表對(duì)象本身,可以沒(méi)有返回值。__new__ 則是返回一個(gè)新的類的實(shí)例,第一個(gè)參數(shù)是 cls 代表該類本身,必須有返回值。很明顯,類先實(shí)例化才能產(chǎn)能對(duì)象,顯然是 __new__ 先執(zhí)行,然后再 __init__,實(shí)際上,只要 __new__ 返回的是類本身的實(shí)例,它會(huì)自動(dòng)調(diào)用 __init__ 進(jìn)行初始化。但是有例外,如果 __new__ 返回的是其他類的實(shí)例,則它不會(huì)調(diào)用當(dāng)前類的 __init__。下面我們分別輸出下對(duì)象 a 和對(duì)象 b 的類型:

print(type(a))
#

print(type(b))
#'object'>'__main__.test'>

可以看出,a 是 test 類的一個(gè)對(duì)象,而 b 就是 object 的對(duì)象。

參考文檔:

https://docs.python.org/3/reference/datamodel.html?highlight=__new__#object.__new__

2、map 函數(shù)返回的對(duì)象

map()函數(shù)第一個(gè)參數(shù)是 fun,第二個(gè)參數(shù)是一般是 list,第三個(gè)參數(shù)可以寫(xiě) list,也可以不寫(xiě),作用就是對(duì)列表中 list 的每個(gè)元素順序調(diào)用函數(shù) fun 。

>>>b=map(lambdax:x*x,[1,2,3])
>>>[iforiinb]
[1,4,9]
>>>[iforiinb]
[]
>>>

有沒(méi)有發(fā)現(xiàn),第二次輸出 b 中的元素時(shí),發(fā)現(xiàn)變成空了。原因是 map() 函數(shù)返回的是一個(gè)迭代器,并用對(duì)返回結(jié)果使用了 yield,這樣做的目的在于節(jié)省內(nèi)存。
舉個(gè)例子:

#encoding:UTF-8
defyield_test(n):
foriinrange(n):
yieldcall(i)
#做一些其它的事情

defcall(i):
returni*2

#使用for循環(huán)
x=yield_test(5)
print([iforiinx])
print([iforiinx])

執(zhí)行結(jié)果為:

[0,2,4,6,8]
[]

這里如果不用 yield,那么在列表中的元素非常大時(shí),將會(huì)全部裝入內(nèi)存,這是非常浪費(fèi)內(nèi)存的,同時(shí)也會(huì)降低效率。

3、正則表達(dá)式中 compile 是否多此一舉?

比如現(xiàn)在有個(gè)需求,對(duì)于文本

中國(guó)

,用正則匹配出標(biāo)簽里面的“中國(guó)”,其中 class 的類名是不確定的。有兩種方法,代碼如下:

>>>importre
>>>text='中國(guó)'
>>>#方法一
...
>>>re.findall('(.*)',text)
['中國(guó)']
>>>#方法二
...
>>>regex='(.*)'
>>>pattern=re.compile(regex)
>>>re.findall(pattern,text)
['中國(guó)']
>>>

這里為什么要用 compile 多寫(xiě)兩行代碼呢?原因是 compile 將正則表達(dá)式編譯成一個(gè)對(duì)象,加快速度,并重復(fù)使用。

4、[[1,2],[3,4],[5,6]]一行代碼展開(kāi)該列表,得出[1,2,3,4,5,6]

>>>[jforiin[[1,2],[3,4],[5,6]]forjini]
[1,2,3,4,5,6]
>>>

5、一行代碼將字符串 "->" 插入到 "abcdefg"中每個(gè)字符的中間

>>>"->".join("abcdef")
'a->b->c->d->e->f'
>>>

這里也建議多使用 os.path.join() 來(lái)拼接操作系統(tǒng)的文件路徑。

6、zip 函數(shù)

zip() 函數(shù)在運(yùn)算時(shí),會(huì)以一個(gè)或多個(gè)序列(可迭代對(duì)象)做為參數(shù),返回一個(gè)元組的列表。同時(shí)將這些序列中并排的元素配對(duì)。zip() 參數(shù)可以接受任何類型的序列,同時(shí)也可以有兩個(gè)以上的參數(shù);當(dāng)傳入?yún)?shù)的長(zhǎng)度不同時(shí),zip 能自動(dòng)以最短序列長(zhǎng)度為準(zhǔn)進(jìn)行截取,獲得元組。

>>>a=[1,2]
>>>b=(3,4)
>>>zip(a,b)

>>>foriinzip(a,b):
...print(i)
...
(1,3)
(2,4)
>>>a="ab"
>>>b="xyz"
>>>foriinzip(a,b):
...print(i)
...
('a','x')
('b','y')
>>>objectat0x000001a20201aa08>

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4381

    瀏覽量

    64921
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70772
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86795
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    從初學(xué)到進(jìn)階:樹(shù)莓派上最適合你的代碼編輯器推薦!

    之前,你需要安裝一些必備工具,代碼編輯器便是其中之。樹(shù)莓派系統(tǒng)自帶了一些代碼編輯器,它們功能良好,足以滿足基本需求。不過(guò),如果你需要更高級(jí)
    的頭像 發(fā)表于 05-15 16:20 ?228次閱讀
    從初學(xué)到進(jìn)階:樹(shù)莓派上最適合你的<b class='flag-5'>代碼</b>編輯器推薦!

    Debian和Ubuntu哪個(gè)好一些?

    兼容性對(duì)比Debian和Ubuntu哪個(gè)好一些,并為您揭示如何通過(guò)RAKsmart服務(wù)器釋放Linux系統(tǒng)的最大潛能。
    的頭像 發(fā)表于 05-07 10:58 ?343次閱讀

    如何添加一些網(wǎng)絡(luò)上的庫(kù)到mpy固件的說(shuō)明或手冊(cè)教程?

    下有沒(méi)有關(guān)于如何添加一些網(wǎng)絡(luò)上的庫(kù)到mpy固件的說(shuō)明或手冊(cè)教程? 問(wèn)題2: 關(guān)于mpy的image庫(kù)在哪里能了解學(xué)習(xí)內(nèi)部代碼,只了解一些python,想知道怎么從c轉(zhuǎn)換成mpy能調(diào)用的
    發(fā)表于 04-29 08:16

    在i.MX RT 1176上正常運(yùn)行代碼時(shí)與使用IAR調(diào)試代碼時(shí)存在一些奇怪的差異,為什么?

    我在 i.MX RT 1176 上正常運(yùn)行代碼時(shí)的行為與使用 IAR 調(diào)試代碼時(shí)的行為之間存在一些奇怪的差異,并注意到這是由于堆棧指針的初始化方式造成的。 我的重置向量表將其指向 DTC 的頂部
    發(fā)表于 03-17 07:26

    創(chuàng)建了用于OpenVINO?推理的自定義C++和Python代碼,從C++代碼中獲得的結(jié)果與Python代碼不同是為什么?

    創(chuàng)建了用于OpenVINO?推理的自定義 C++ 和 Python* 代碼。 在兩個(gè)推理過(guò)程中使用相同的圖像和模型。 從 C++ 代碼中獲得的結(jié)果與 Python*
    發(fā)表于 03-06 06:22

    使用Python實(shí)現(xiàn)xgboost教程

    使用Python實(shí)現(xiàn)XGBoost模型通常涉及以下幾個(gè)步驟:數(shù)據(jù)準(zhǔn)備、模型訓(xùn)練、模型評(píng)估和模型預(yù)測(cè)。以下是個(gè)詳細(xì)的教程,指導(dǎo)你如何在Python中使用XGBoost。 1. 安裝XGBoost
    的頭像 發(fā)表于 01-19 11:21 ?1383次閱讀

    華為云 Flexus X 實(shí)例下的場(chǎng)景體驗(yàn)——小企業(yè)使用 Python 語(yǔ)言——超迅速搭建簡(jiǎn)單公網(wǎng) API 接口服務(wù)

    ? 前言 小企業(yè)為了快速搞定一些接口功能如果不使用 Python 的話相對(duì)來(lái)說(shuō)復(fù)雜度還是很高的,這里我來(lái)通過(guò)【華為云 Flexus X 實(shí)例】來(lái)迅速的搭建個(gè) Python 的 Web
    的頭像 發(fā)表于 12-27 13:46 ?524次閱讀
    華為云 Flexus X 實(shí)例下的場(chǎng)景體驗(yàn)——小企業(yè)使用 <b class='flag-5'>Python</b> 語(yǔ)言——超迅速搭建簡(jiǎn)單公網(wǎng) API 接口服務(wù)

    Python中dict支持多個(gè)key的方法

    不直接支持使用多個(gè)鍵進(jìn)行索引,但我們可以通過(guò)一些技巧來(lái)實(shí)現(xiàn)這功能。 下面,我將展示幾種處理包含多個(gè)鍵的字典的方法,并提供詳細(xì)的代碼示例。 1.方法:使用元組作為鍵 我們可以將多個(gè)鍵
    的頭像 發(fā)表于 11-29 15:59 ?539次閱讀

    使用Python進(jìn)行串口通信的案例

    當(dāng)然!以下是個(gè)使用Python進(jìn)行串口通信的簡(jiǎn)單示例。這個(gè)示例展示了如何配置串口、發(fā)送數(shù)據(jù)以及接收數(shù)據(jù)。我們將使用 pyserial 庫(kù),這是個(gè)非常流行的用于串口通信的Python
    的頭像 發(fā)表于 11-22 09:11 ?1474次閱讀

    一些常見(jiàn)的動(dòng)態(tài)電路

    無(wú)論是模電還是數(shù)電,理論知識(shí)相對(duì)來(lái)說(shuō)還是比較枯燥,各種電路原理理解清楚不算容易,換種生動(dòng)形象的方式或許會(huì)增加一些趣味性,也更容易理解這些知識(shí)。下面整理了一些常見(jiàn)的電路,以動(dòng)態(tài)圖形的方式展示。 整流
    的頭像 發(fā)表于 11-16 09:26 ?1142次閱讀
    <b class='flag-5'>一些</b>常見(jiàn)的動(dòng)態(tài)電路

    分享一些常見(jiàn)的電路

    理解模電和數(shù)電的電路原理對(duì)于初學(xué)者來(lái)說(shuō)可能比較困難,但通過(guò)一些生動(dòng)的教學(xué)方法和資源,可以有效地提高學(xué)習(xí)興趣和理解能力。 下面整理了一些常見(jiàn)的電路,以動(dòng)態(tài)圖形的方式展示。 整流電路 單相橋式整流
    的頭像 發(fā)表于 11-13 09:28 ?837次閱讀
    分享<b class='flag-5'>一些</b>常見(jiàn)的電路

    使用Python進(jìn)行圖像處理

    下面是個(gè)關(guān)于使用Python在幾行代碼中分析城市輪廓線的快速教程。
    的頭像 發(fā)表于 11-07 10:14 ?591次閱讀
    使用<b class='flag-5'>Python</b>進(jìn)行圖像處理

    Python常用函數(shù)大全

    Python 世界里,有一些寶藏函數(shù)和模塊,它們可以讓你編程更輕松、代碼更高效。這篇文章將帶你一一認(rèn)識(shí)這些神器,讓你的開(kāi)發(fā)生活瞬間輕松不少!
    的頭像 發(fā)表于 10-27 17:20 ?920次閱讀

    LED驅(qū)動(dòng)器應(yīng)用的一些指南和技巧

    電子發(fā)燒友網(wǎng)站提供《LED驅(qū)動(dòng)器應(yīng)用的一些指南和技巧.pdf》資料免費(fèi)下載
    發(fā)表于 09-25 11:35 ?0次下載
    LED驅(qū)動(dòng)器應(yīng)用的<b class='flag-5'>一些</b>指南和技巧

    pytorch和python的關(guān)系是什么

    ,PyTorch已經(jīng)成為了個(gè)非常受歡迎的框架。本文將介紹PyTorch和Python之間的關(guān)系,以及它們?cè)谏疃葘W(xué)習(xí)領(lǐng)域的應(yīng)用。 Python簡(jiǎn)介 Python
    的頭像 發(fā)表于 08-01 15:27 ?3285次閱讀