在Python學(xué)習(xí)中,我們會(huì)接觸到各類各樣的特性,如果能夠熟練掌握這些特性,我們的技術(shù)水平也會(huì)大幅度提升,那掌握它首先要了解它,小編整理了高級特性的定義,希望能幫助到大家,讓我們來看看都有哪些吧。
閉包即可以訪問另一個(gè)函數(shù)作用域中的變量的函數(shù),創(chuàng)建閉包的方法就是在一個(gè)函數(shù)內(nèi)部創(chuàng)建另一個(gè)函數(shù)。其函數(shù)里面嵌套函數(shù),外部函數(shù)的返回值是內(nèi)部函數(shù)的引用,內(nèi)部函數(shù)還可以使用外部函數(shù)的變量。
裝飾器指為被裝飾器對象添加額外功能的工具或函數(shù),如果我們已經(jīng)上線了某個(gè)項(xiàng)目,則需要修改某一個(gè)方法,但我們?nèi)绻幌胄薷牡脑?,就可以使用裝飾器,軟件的維護(hù)該遵循開放封閉原則,也就是軟件上線運(yùn)行后,軟件的維護(hù)對修改源代碼是封閉的。
裝飾器必須遵循2大原則:1、封閉:對已經(jīng)實(shí)現(xiàn)的功能代碼塊封閉,不修改被裝飾對象的源代碼。2、開放:即對擴(kuò)展開放。裝飾器就是在遵循這兩者的前提下開發(fā)的。
裝飾器本身是一個(gè)函數(shù),可以用來處理其他函數(shù),也可以讓其他函數(shù)在不需要修改代碼的前提下增加額外的功能,裝飾起的返回值也是一個(gè)函數(shù)對象。
Python也支持多裝飾器,裝飾器的執(zhí)行順序是由上至下的,被裝飾器的執(zhí)行順序是由下至上的,一般情況下,在函數(shù)中可以使用一個(gè)裝飾器,但有時(shí)也會(huì)有兩個(gè)或兩個(gè)以上的裝飾器,多個(gè)裝飾器的執(zhí)行順序是自下至上的,也就是就近原則,而調(diào)用的順序是由上至下的。
Python中也有一些內(nèi)置的高階函數(shù),請看下面:
1、map():會(huì)根據(jù)提供的函數(shù)對指定序列做映射,當(dāng)序列多一個(gè)時(shí),map可以并行地對每個(gè)序列執(zhí)行。
2、reduce():會(huì)對參數(shù)序列中元素進(jìn)行累計(jì)。
3、filter():用于過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表。
4、sorted():對所有可迭代的對象進(jìn)行排序操作,返回重新排序的列表,其中reverse表示排序規(guī)則,true為降序,false為升序,升序(false)為默認(rèn)的。
那在Python中sort()和sorted()的區(qū)別是什么?
1、排序?qū)ο蟛煌簊ort是應(yīng)用在list的方法,sorted可以對所有可迭代的對象進(jìn)行排序操作。
2、返回值不同:list的sort方法返回的是對已經(jīng)存在的列表進(jìn)行操作,不存在返回值,內(nèi)建函數(shù)sorted方法返回的是一個(gè)新的list,而不是在原來的基礎(chǔ)上進(jìn)行的操作。