Python的學習筆記(二)(進階)

函數式編程
1.函數可以作爲參數傳遞給另一個函數
2.map()是 Python 內置的高階函數,它接收一個函數 f 和一個 list,並通過把函數 f 依次作用在 list 的每個元素上,得到一個新的 list 並返回。
3.reduce()函數也是Python內置的一個高階函數。reduce()函數接收的參數和 map()類似,一個函數 f,一個list,但行爲和 map()不同,reduce()傳入的函數 f 必須接收兩個參數,reduce()對list的每個元素反覆調用函數f,並返回最終結果值。
4.filter()函數是 Python 內置的另一個有用的高階函數,filter()函數接收一個函數 f 和一個list,這個函數 f 的作用是對每個元素進行判斷,返回 True或 False,filter()根據判斷結果自動過濾掉不符合條件的元素,返回由符合條件元素組成的新list。
5.sorted()函數:Python內置的 sorted()函數可對list進行排序: sorted()也是一個高階函數,它可以接收一個比較函數來實現自定義排序,比較函數的定義是,傳入兩個待比較的元素 x, y,如果 x 應該排在 y 的前面,返回 -1,如果 x 應該排在 y 的後面,返回 1。如果 x 和 y 相等,返回 0。
6.關鍵字lambda 表示匿名函數,冒號前面的 x 表示函數參數。
e.g: map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]) —> [1, 4, 9, 16, 25, 36, 49, 64, 81]

模塊與包
1.一個.py文件即爲一個模塊,模塊的調用:math.ads()
2.調用時需要完整的模塊+函數
3.包就是一個文件,包的目錄有init.py文件,每一層都需要有
4.Python使用import語句導入一個模塊。例如,import math
5.導入一個包的部分函數:from math import pow, sin, log 別名:from math import log/from logging import log as logger 來解決函數重名的問題
6.使用pip進行模塊的安裝:在2.7.9版本以後纔有的功能:e.g:pip install web.py

面向對象
1.在Python中,類通過 class 關鍵字定義。以 Person 爲例,定義一個Person類如下:
class Person(object):
pass
2.對象的創建 xiaoming = Person()
3.如果一個屬性由雙下劃線開頭(__),該屬性就無法被外部訪問
4.所有實例訪問的類屬性都是同一個!也就是說,實例屬性每個實例各自擁有,互相獨立,而類屬性有且只有一份。
5.當實例屬性和類屬性重名時,實例屬性優先級高
6.對象中也可以將函數認爲參數,可以傳遞和返回
7.通過標記一個 @classmethod,該方法將綁定到 Person 類上,而非類的實例。類方法的第一個參數將傳入類本身,通常將參數名命名爲 cls,上面的 cls.count 實際上相當於 Person.count。
8.函數isinstance()可以判斷一個變量的類型,既可以用在Python內置的數據類型如str、list、dict,也可以用在我們自定義的類,它們本質上都是數據類型。
9.支持多繼承
10.特殊方法:
str(),
cmp()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章