Python 函式 類 語法糖

發表於2016-08-15

Python 語法糖

\,換行連線

while,for 迴圈外的 else

如果 while 迴圈正常結束(沒有break退出)就會執行else。

zip() 並行迭代

列表推導式

字典推導式

{ key_exp : value_exp fro expression in iterable }

集合推導式

{expression for expression in iterable }

元組沒有推導式

本以為元組推導式是列表推導式改成括號,後來發現那個 生成器推導式。

生成器推導式

函式

函式關鍵字引數,預設引數值

函式預設引數值在函式定義時已經計算出來,而不是在程式執行時。
列表字典等可變資料型別不可以作為預設引數值。

changed:

*args 收集位置引數

**kwargs 收集關鍵字引數

lamba 匿名函式

生成器

生成器是用來建立Python序列的一個物件。可以用它迭代序列而不需要在記憶體中建立和儲存整個序列。
通常,生成器是為迭代器產生資料的。

生成器函式函式和普通函式類似,返回值使用 yield 而不是 return 。

裝飾器

有時需要在不改變原始碼的情況下修改已經存在的函式。
裝飾器實質上是一個函式,它把函式作為引數輸入到另一個函式。
舉個例子:

可以使用多個裝飾器,多個裝飾由內向外向外順序執行。

名稱空間和作用域

可以使用全域性變數 global a

Python 提供了兩個獲取名稱空間內容的函式
local()
global()

_ 和 __

Python 保留用法。
舉個例子:

異常處理,try…except

只有錯誤發生時才執行的程式碼。
舉個例子:

再試下:

沒有自定異常型別使用任何錯誤。

獲取異常物件,except exceptiontype as name

自定義異常

異常是一個類。類 Exception 的子類。

命令列引數

命令列引數

python檔案:

PPrint()友好輸出

與print()用法相同,輸出結果像是列表字典時會不同。

子類super()呼叫父類方法

舉個例子:

self.__name 保護私有特性

例項方法( instance method )

例項方法,以self作為第一個引數,當它被呼叫時,Python會把呼叫該方法的的物件作為self引數傳入。

類方法 @classmethod

注意,使用h.count(類特徵),而不是self.count(物件特徵)。

靜態方法 @staticmethod

建立即用,優雅不失風格。

特殊方法(sqecial method)

一個普通方法:

使用特殊方法:

其他還有:

文字字串

{} 和 .format

相關文章