日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

一些值得玩味的python代碼

python爬蟲知識分享 ? 來源:python爬蟲知識分享 ? 作者:python爬蟲知識分享 ? 2022-03-30 17:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

1、類有兩個(gè)方法,一個(gè)是 __new__,一個(gè)是 __init__,有什么區(qū)別,哪個(gè)會先執(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__

再來看另一個(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,代表對象本身,可以沒有返回值。__new__ 則是返回一個(gè)新的類的實(shí)例,第一個(gè)參數(shù)是 cls 代表該類本身,必須有返回值。很明顯,類先實(shí)例化才能產(chǎn)能對象,顯然是 __new__ 先執(zhí)行,然后再 __init__,實(shí)際上,只要 __new__ 返回的是類本身的實(shí)例,它會自動調(diào)用 __init__ 進(jìn)行初始化。但是有例外,如果 __new__ 返回的是其他類的實(shí)例,則它不會調(diào)用當(dāng)前類的 __init__。下面我們分別輸出下對象 a 和對象 b 的類型:

print(type(a))
#

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

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

參考文檔:

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

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

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

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

有沒有發(fā)現(xiàn),第二次輸出 b 中的元素時(shí),發(fā)現(xiàn)變成空了。原因是 map() 函數(shù)返回的是一個(gè)迭代器,并用對返回結(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í),將會全部裝入內(nèi)存,這是非常浪費(fèi)內(nèi)存的,同時(shí)也會降低效率。

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

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

中國

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

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

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

4、[[1,2],[3,4],[5,6]]一行代碼展開該列表,得出[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() 來拼接操作系統(tǒng)的文件路徑。

6、zip 函數(shù)

zip() 函數(shù)在運(yùn)算時(shí),會以一個(gè)或多個(gè)序列(可迭代對象)做為參數(shù),返回一個(gè)元組的列表。同時(shí)將這些序列中并排的元素配對。zip() 參數(shù)可以接受任何類型的序列,同時(shí)也可以有兩個(gè)以上的參數(shù);當(dāng)傳入?yún)?shù)的長度不同時(shí),zip 能自動以最短序列長度為準(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)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4422

    瀏覽量

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

    關(guān)注

    30

    文章

    4977

    瀏覽量

    74419
  • python
    +關(guān)注

    關(guān)注

    58

    文章

    4889

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    如何使用 powerquad 加速器中的一些功能以及 CMSIS 原始實(shí)現(xiàn)中的一些功能?

    )。 如何使用 powerquad 加速器中的一些功能以及 CMSIS 原始實(shí)現(xiàn)中的一些功能。 Example: I do not want to call arm_mat_trans_q15 powerquad
    發(fā)表于 04-03 06:37

    [VirtualLab] 使用Python運(yùn)行VirtualLab Fusion光學(xué)仿真

    摘要 VirtualLab Fusion允許Python外部訪問其建模技術(shù)、求解器和結(jié)果。這個(gè)用例介紹了種使用路徑變量和Visual Studio代碼Python連接到Virtu
    發(fā)表于 03-31 09:39

    S32 Design Studio 有一些代碼文件示例,但它在本地計(jì)算機(jī)中不存在,為什么?

    S32 Design Studio 有一些代碼文件示例,但它在本地計(jì)算機(jī)中不存在。
    發(fā)表于 03-17 07:28

    爬壁機(jī)器人磁鐵的一些常見問題

    爬壁機(jī)器人近幾年比較火,它是類能夠在垂直墻面、天花板、傾斜表面上移動和作業(yè)的特種機(jī)器人,今天我們不聊其它,只聊下關(guān)于磁吸附應(yīng)用中的磁鐵,以下是小編整理的關(guān)于爬壁機(jī)器人中磁鐵的一些常見問題。
    的頭像 發(fā)表于 01-09 10:06 ?460次閱讀
    爬壁機(jī)器人磁鐵的<b class='flag-5'>一些</b>常見問題

    C語言中一些令人震驚的結(jié)構(gòu)介紹

    C語言同意一些令人震驚的結(jié)構(gòu),下面的結(jié)構(gòu)是合法的嗎,如果是它做些什么? int a = 5, b = 7, c; c = a+++b; 考察點(diǎn): 這個(gè)問題將作為這個(gè)測驗(yàn)的個(gè)愉快的結(jié)尾
    發(fā)表于 12-23 08:15

    關(guān)于六類網(wǎng)線一些問題的解答

    今天我們就圍繞網(wǎng)友一些常見的關(guān)于六類網(wǎng)線的問題進(jìn)行下匯總式解答: 問 六類網(wǎng)線可以當(dāng)電源用嗎? 答 六類網(wǎng)線并不是設(shè)計(jì)用于傳輸電力的電纜,因此般不建議將其用于電源傳輸。 盡管六類網(wǎng)線的線芯可以
    的頭像 發(fā)表于 12-09 11:13 ?786次閱讀

    Termux中調(diào)試圣誕樹Python代碼

    在Termux中調(diào)試Python代碼(以圣誕樹立例)非常簡單,核心分為環(huán)境準(zhǔn)備、代碼編寫、運(yùn)行調(diào)試三個(gè)步驟,下面步步教你操作: 、環(huán)境準(zhǔn)
    發(fā)表于 12-09 09:02

    貼片電容精度J±5%的一些詳細(xì)知識

    貼片電容精度J±5%表示電容的實(shí)際值與標(biāo)稱值之間的偏差范圍在±5%以內(nèi) ,以下是關(guān)于貼片電容精度J±5%的一些詳細(xì)知識: 、精度等級含義 J±5% :字母“J”在貼片電容的標(biāo)識中通常表示標(biāo)稱精度
    的頭像 發(fā)表于 11-20 14:38 ?1013次閱讀
    貼片電容精度J±5%的<b class='flag-5'>一些</b>詳細(xì)知識

    如果將蜂鳥的risc-v移植到其他的fpga中想實(shí)現(xiàn)一些外設(shè)功能有什么辦法?可以不用操作系統(tǒng)直接添加verilog代碼嗎?

    請問如果將蜂鳥的risc-v移植到其他的fpga中想實(shí)現(xiàn)一些外設(shè)功能有什么辦法?可以不用操作系統(tǒng)直接添加verilog代碼嗎?
    發(fā)表于 11-10 06:35

    對浮點(diǎn)指令擴(kuò)展中一些問題的解決與分享

    出現(xiàn)無法寫的情況。 結(jié)論 以上就是我們組在擴(kuò)展浮點(diǎn)指令中出現(xiàn)的一些問題,這些問題總體上歸結(jié)于對蜂鳥的代碼沒有整體性的把握,對內(nèi)容的掌握程度還不夠。在后續(xù)的工作中應(yīng)注意理清功能的整體架構(gòu)而對所有的相關(guān)部分進(jìn)行修改。
    發(fā)表于 10-24 11:47

    termux如何搭建python游戲

    termux如何搭建python游戲 Termux搭建Python游戲開發(fā)環(huán)境的完整指南 、Termux基礎(chǔ)環(huán)境準(zhǔn)備 Termux是款無需root即可在安卓設(shè)備上運(yùn)行的L
    發(fā)表于 08-29 07:06

    Python中字符串逆序有幾種方式,代碼是什么

    對于個(gè)給定的字符串,逆序輸出,這個(gè)任務(wù)對于python來說是種很簡單的操作,畢竟強(qiáng)大的列表和字符串處理的一些列函數(shù)足以應(yīng)付這些問題 了,今天總結(jié)了
    的頭像 發(fā)表于 08-28 14:44 ?1319次閱讀

    求助,關(guān)于TC387使能以及配置SOTA 中一些問題求解

    你好, 之前我拿到貴司給個(gè)demo,里面有一些使能以及配置SWAP的代碼, 這里有些疑問 問題1. 判斷SOTA功能是否生效,demo中使用的是 SCU_STMEM1中的bit位, 代碼
    發(fā)表于 08-08 07:31

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

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

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

    兼容性對比Debian和Ubuntu哪個(gè)好一些,并為您揭示如何通過RAKsmart服務(wù)器釋放Linux系統(tǒng)的最大潛能。
    的頭像 發(fā)表于 05-07 10:58 ?1444次閱讀
    陕西省| 华亭县| 忻城县| 安化县| 湖州市| 潼南县| 南投市| 哈巴河县| 隆林| 济南市| 得荣县| 洞口县| 诏安县| 牡丹江市| 宁乡县| 富平县| 旺苍县| 西贡区| 上高县| 永昌县| 宜昌市| 凌海市| 潍坊市| 临沂市| 绍兴县| 报价| 玉门市| 富顺县| 南雄市| 贺州市| 东宁县| 台南县| 河池市| 乐东| 安庆市| 长寿区| 阳山县| 天水市| 疏附县| 齐齐哈尔市| 海城市|