在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    數(shù)控機(jī)床車(chē)床被鎖

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

    print( type(a))#print( type(b))#

    可以看出,a 是 test 類(lèi)的一個(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(lambda x:x*x,[1,2,3])>>> [i for i in b][1, 4, 9]>>> [i for i in b][]>>>

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

    #encoding:UTF-8 def yield_test(n): for i in range(n): yield call(i) #做一些其它的事情 def call(i): return i*2 #使用for循環(huán) x = yield_test(5)print([i for i in x])print([i for i in x])

    執(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 的類(lèi)名是不確定的。有兩種方法代碼如下:

    >>> import re>>> 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]

    >>> [j for i in [[1,2],[3,4],[5,6]] for j in i][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ù)可以接受任何類(lèi)型的序列,同時(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)>>> for i in zip(a,b):… print(i)…(1, 3)(2, 4)>>> a=”ab”>>> b=”xyz”>>> for i in zip(a,b):… print(i)…(‘a’, ‘x’)(‘b’, ‘y’)>>>

    鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
    上一篇 2022年6月26日 18:02
    下一篇 2022年6月26日 18:02

    相關(guān)推薦

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息