裝飾器是乙個函式,它需要接收乙個引數,該引數表示被修飾的函式。
裝飾器是乙個巢狀函式
內部函式是乙個閉包
外部函式接收的是被修飾的函式
不帶引數裝飾器
print(func)
def new_func(*new_argument):
print('before')
result = func(*new_argument)
print('after')
return result * 2
return new_func
def row_func(a, b):
print('hello', a, b)
return a + b
print(row_func(10, 20))
帶引數的裝飾器
def intermediate(func):
def new_func(*args):
print('before', argument)
result = func(*args)
print('after', argument)
return result*2
return new_func
return intermediate
def row_func(a, b):
print('hello', a, b)
return a+b
print(row_func(10, 20)
類不帶引數裝飾器
def __init__(self, b):
self.b = b
def __call__(self, *args):
print('before')
result = self.b(*args)
print('after')
def row_func(a, b):
print('hello',a,b)
return a + b
row_func(10, 20)
類帶引數裝飾器
def __init__(self,a):
self.a = a
def __call__(self,func):
def new_func(*b):
print('before',self.a)
result = func(*b)
print('after', self.a)
return result*2
return new_func
def row_func(a,b):
print('hello', a, b)
return a+b
print(row_func(3,4))
PYTHON的四種作用域
作用域又可以被稱為命名空間,指變數起作用的範圍。python變數作用域可以分為四種,分別為區域性作用域 巢狀作用域 全域性作用域 內建作用域。python的四種所用域及其呼叫順序,當使用某一變數時,首先在函式內部進行搜尋 區域性作用域 l 搜尋不到便到上層函式或類中進行查詢 巢狀作用域 e 再查詢不...
python裝飾器系列 四
先來看乙個不帶引數的裝飾器 1 import time23 deftimeit fn 4def wrap args,kwargs 5 start time.time 6 ret fn args,kwargs 7print time.time start 8return ret9 return wra...
TCP的四種定時器
tcp在建立連線後會啟動四個定時器 重傳計時器 retransmission timer 堅持計時器 persistent timer 保活計時器 keeplive timer 2msl定時器 time wait timer 1 重傳計時器 tcp的傳送方沒有在規定的時間內收到確認就要重傳已傳送的報...