筆記 迭代器,閉包,裝飾器

2022-01-30 15:20:11 字數 1216 閱讀 5576

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...

閉包 裝飾器

外部函式返回內部函式的引用 內部函式可以直接使用外部函式的環境變數 語法 外部函式通過返回內部函式的引用 內部函式可以直接使用外部函式的 環境變數 自由變數 函式執行時間統計 執行函式前預備處理 執行函式後清理功能 許可權校驗等場景 快取有且只有乙個引數 指向了被裝飾的函式的引用 使用裝飾器 裝飾器...

閉包,裝飾器

多層函式巢狀,函式裡面還有定義函式,一般是兩個 往往內層函式會用到外層函式的變數,把內層函式以及外部函式的變數當成乙個特殊的物件,這就是閉包。閉包比物件導向更純淨 更輕量,既有資料又有執行資料的 比普通函式功能更強大,不僅有 還有資料 利用閉包的基本原理,對乙個目標函式進行裝飾,即在執行乙個目標函式...