1.迭代器
a.判斷迭代 isinstance()判斷乙個
b.生成器是可迭代物件
c。iter() 轉成生成器
迭代物件
2. 閉包
定義 :一坨東西 ,名字只是乙個變數指向這一坨東西
在函式裡面定義乙個函式,裡面的函式用到外邊的變數,這個函式和用到的變數稱之為變數
第一步:先呼叫函式,找乙個變數指向裡面的函式,
例子: def test(number):
print('1111111111')
def test_in(number2):
print('---2----')
print(number+number2)
print('333333')
return test_in
ret =test(100)
print('*'*30)
ret(1)#這個ret就是test_in()這個函式
ret(200)
應用:def test(a,b):
def test_in(x):
print(a*x+b)
return test_in
line1=test(1,1)
line2=test(10,4)
line1(0)
line2(0)
簡化**傳參的格式
3.裝飾器
原理:例子
def w1 (func):
def inner():
print('1111')
fnuc()
return inner
def f1():
print('f1')
def f2():
print('f2')
f1=w1(f1)# 等價 @w1
f1()
f2=w1(f2)
f2()
2個裝飾器 先裝飾離函式最近的,然後向上一次裝飾
4.匿名函式
應用 給字典排序
例子 infors=[,"name":"xiaoming","age":10},"name":"bangzhang","age":10}]
infors.sort(key=lambda x:x['name']) 第乙個x 為字典,第二個x為key
5.列表排序
num。sort()
num.reverse() 逆序
6.
閉包 裝飾器(筆記)
閉包 乙個函式中巢狀另外乙個函式的定義 且內部的函式會用到外部函式的變數 def line k,b def create y x print k x b return create y myline line 1,2 myline 1 myline 2 myline line 11,22 mylin...
閉包 裝飾器
外部函式返回內部函式的引用 內部函式可以直接使用外部函式的環境變數 語法 外部函式通過返回內部函式的引用 內部函式可以直接使用外部函式的 環境變數 自由變數 函式執行時間統計 執行函式前預備處理 執行函式後清理功能 許可權校驗等場景 快取有且只有乙個引數 指向了被裝飾的函式的引用 使用裝飾器 裝飾器...
閉包,裝飾器
多層函式巢狀,函式裡面還有定義函式,一般是兩個 往往內層函式會用到外層函式的變數,把內層函式以及外部函式的變數當成乙個特殊的物件,這就是閉包。閉包比物件導向更純淨 更輕量,既有資料又有執行資料的 比普通函式功能更強大,不僅有 還有資料 利用閉包的基本原理,對乙個目標函式進行裝飾,即在執行乙個目標函式...