函式是在程式設計中 剪剪貼貼的代替。
有函式以後,才有全域性作用域的麻煩。
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...