Python學習手冊 09

2021-07-09 09:57:44 字數 1177 閱讀 2399

函式是在程式設計中 剪剪貼貼的代替。

有函式以後,才有全域性作用域的麻煩。

def 是可執行的**, 在執行這個之前,函式並不存在。

函式也是物件-函式物件,def建立乙個函式物件,並複製給你定義的函式名字。

def這個語句是實時執行的, 建立函式物件,賦值給函式名

在模組匯入的時候,會執行一遍模組中的**。

依賴型別的行為稱為多型。

函式是多型的。

作用域就是 命名空間

變數被賦值的地點,繫結乙個特定的命名空間。

全域性作用域僅限單個檔案。

函式內部可以引用全域性變數,前提是函式內部沒有相同名稱的變數。

內建變數會被最後搜尋的, 所以你可以使用內建變數,而不需要匯入__builtin__模組

全域性變數不經過宣告也可以在函式內部引用

但如果要在函式內部改變全域性變數的話,必須要global宣告。

函式也可以宣告 全域性作用域

包閉,在函式內,定義函式 。 或者叫 工廠函式 ,能夠在動態的改變函式。

定義__call__方法後,變數可以像函式一樣被使用。

函式的引數

1,普通的位置確定的引數

2,關鍵字的引數

3,引數預設值

4,* 和** 任意引數

這有個醜陋的例子

def

f(*arg):

print arg

f(1,2,3,4)

deff2

(**arg):

print arg

f2(a=2,b=3,c=4)

還有另一種叫 解包引數,這像是一種偷懶的引數傳遞方法。

函式物件: 屬性和註解

函式是乙個物件,就像字串或者數字那樣

函式可以附加任意的使用者定義的屬性。

lambda 是一種函式速寫

map 序列中的對映函式

filter 生成乙個 符合條件的新的列表

reduce 將乙個列表中的每個元素,都按照某種方式,應用於乙個函式,最後得到乙個結果。

列表解析: 要實現乙個功能,有很多的方法。列表解析就是乙個。

生成器函式: 包含yield的def函式,支援迭代協議。

狀態掛起,

列表解析比map更強大。map只支援函式。

python 學習筆記(09)

字串格式化 轉換說明符 字元 標記轉換說明符的開始 轉換標誌 可選 減號 左對齊 加號 在轉換值之前要加上正負號 空白字元 正數之前保留空格 0 零 轉換值若位數不夠用0填充 最小字段寬度 可選 轉換後的字串至少應該具有該值指定的寬度,如果是 則寬度會從值元組中讀出 點 後跟精度值 可選 如果是實數...

python 學習筆記(09)

字串格式化 轉換說明符 字元 標記轉換說明符的開始 轉換標誌 可選 減號 左對齊 加號 在轉換值之前要加上正負號 空白字元 正數之前保留空格 0 零 轉換值若位數不夠用0填充 最小字段寬度 可選 轉換後的字串至少應該具有該值指定的寬度,如果是 則寬度會從值元組中讀出 點 後跟精度值 可選 如果是實數...

Python學習手冊 02

物件無非是記憶體中的一部分,包含數值和相關操作的集合。python程式可以分解成模組,語句,表示式,物件。1,程式由模組構成 2,模組包含語句 3,語句包含表示式 4,表示式建立並處理物件 python提高程式設計效率的方法之一 內建型別 像函式,模組,類這樣的程式設計單元也是物件,由def,cla...