Python學習筆記2

2021-07-27 03:03:54 字數 1518 閱讀 5322

1、生成器(generator)

python中一種一邊迴圈一邊計算的機制,就像將列表中的元素按某種演算法推算出來。建立generator就是把列表的【】變成()。直接用for迴圈來迭代。如果推算的演算法比較複雜還可以用函式實現,函式定義中包含關鍵之yield時就是乙個generator,而不是乙個普通函式。generator函式在每次呼叫next()的時候執行,遇到yield語句的時候返回,再次執行時從上次返回的yield處繼續執行。

工作原理是在for迴圈的過程中不斷地計算出下乙個元素,並在適當的條件(如generator的函式中有return語句或執行到函式體的最後一行)結束for迴圈。

2、對於程式語言,越是低階的語言就越貼近計算機,抽象程度低,執行效率高,比如c語言;越高的語言,越貼近計算,抽象程度越高,執行效率就低,如lisp語言(mit為研究人工智慧而開發)。

3、高階函式

將函式作為引數傳入,這樣的函式就是高階函式。

4、map()有一種平行計算的意思。reduce通過函式表示式得到乙個最終結果。

5、sorted(序列)---輸出從小到大的順序,sorted(序列,自定義比較函式)----按自定義規則輸出結果。

6、返回函式不要引用任何迴圈變數,或者後續發生變化的變數

7、匿名函式

關鍵字lambda表示匿名函式,只能寫乙個表示式,不用寫return,返回值就是表示式的結果。如lambda x:x*x,表示引數為x,表示式是x*x

匿名函式可以作為乙個函式的返回值

8、裝飾器

傳入乙個函式,返回函式的高階函式,作用:動態增加功能

9、作用域

正常函式和變數名是public,可以直接引用,如:abc、x123、pi

_***x_是特殊變數。可以直接引用,但是有特殊用途,如_author_, _name_

_***x(乙個前置下劃線)或__***(兩個前置下劃線)是private, 不應該直接引用(python中沒有一種方法可以完全限制訪問private函式或變數。但從程式設計習慣上不應該引用private函式或變數)

10、建立例項的時候,必須繫結的屬性強制寫進去,通過定義_init_(self,屬性1,屬性2,...)【注:第乙個引數永遠是self,表示建立例項本身】,例項化的時候必須傳入與_init_相匹配的引數,self不需要傳。

11、class內部的屬性不被外部訪問,在屬性名前加兩個下劃線「__」變成private變數。只有內部能訪問;乙個前置下劃線的變數外部是可以訪問的,但是仍然視為私有變數,外部不要去訪問。

12、用dir()獲取乙個物件所有的屬性和方法,返回乙個包含字串的list

13、_slots_變數用來限制class能新增的屬性,eg:_slots_=("屬性1","屬性2",.....)【_slots_定義的屬性僅對當前類起作用,對整合的子類是不起作用的】

14、@property廣泛的應用在類的定義中,可以讓呼叫者寫出簡短的**,同時保證對引數進行必要的檢查。

15、多重繼承,乙個子類可以有多個父類,class aaa(父類1,父類2,······)

Python學習筆記 2

python學習筆記 2 1 error and exceptions 錯誤和異常 語法錯誤是在編譯時檢查,但python允許在程式執行期間檢查錯誤。當檢查出錯誤,python直譯器丟擲 產生 觸發乙個異常。要增加錯誤檢測或異常處理到 使用try except語句。語法如下 try try runn...

python學習筆記 2

八 type函式的作用是顯示值和變數的型別,id以值或變數為引數,返回值是一整數.type world type str id 123 11602164 九 python函式的定義形式 def arg1,arg2,argn 函式的名字也必須以字母開頭,可以包括下劃線 但不能把python的 關鍵字定...

Python學習筆記 2

已經學習python兩天了,總結一下學習成果。初學python,如果有寫錯的地方,還望各位大牛指出。先列一列作品 python socket 客戶端測試程式 easygui 猜數遊戲 看雪登入器 涉及到的知識點 物件導向 socket庫 httplib2庫 easygui 小知識點 通過這種方式匯入...