裝飾器和閉包概念問題總結
05-03
#裝飾器
1.創建一個閉包(終級版)
2.@xx裝飾你要裝飾的函數
#萬能裝飾器
def set_fun(func):
def call_fun(*args,**kwargs):
return func(*args,**kwargs)
return call_fun
@set_fun
def test():
pass
#裝飾器在不改變原先的函數代碼的情況下,給原先的函數添加額外的功能(原則)
#裝飾器不會去改變原函數的參數及結果
#裝飾前的函數(test),是由func指向的
#裝飾後的函數(test),是指向了call_fun
#閉包
1. 兩個函數的嵌套,外部函數返回內部函數的引用,外部函數一定有參數
2. 外部參數可以在內存中存留,跟函數的區別
def 外部函數(data):
def 內部函數():
pass
return 內部函數
#作業:
計算某函數的執行次數,用戶行為分析
計算某函數的執行時間,優化
def test():? print("test")
import time
time.time()
#兩個裝飾器裝飾一個函數(會使用)
![](images/2.png)
#了解一個裝飾器裝飾一個函數
![](images/1.png)
#了解兩個裝飾器裝飾一個函數
![](images/3.png)
推薦閱讀:
※小心了!小白無法入門Python你不可避免的4個陷阱
※Python 中 pandas read_csv 問題?
※python非同步asyncio模塊的使用
※from __future__ import print_function用法
※怎樣將一個24的n次方複雜度的計算優化?
TAG:Python |