假期python複習3

2022-06-21 21:18:09 字數 2063 閱讀 1925

帶引數的裝飾器

500個函式

@timmer_out(flage)
def timmer_out(flag):

def timmer(func):

def inner(*args, **kwargs):

if flag:

start = time.time()

ret = func(*args, **kwargs)

end = time.time()

print(end - start)

return ret

else:

ret = func(*args, **kwargs)

return ret

return inner

return timmer

首先是執行函式timmer_out(flage)然後返回timmer

前面的@加返回的timmer構造語法糖

過程為timmer_out(flag) == timmer

@timmer == wahaha = timmer(wahaha)

多了乙個引數,多次呼叫

可以理解為

timmer = timmer_out(flage)

然後@timmer原理一樣

這樣可以控制裝飾器是否使用並且可以控制多個裝飾器

# 帶引數的裝飾器

# 500個函式

import time

flage = true

def timmer_out(flag):

def timmer(func):

def inner(*args, **kwargs):

if flag:

start = time.time()

ret = func(*args, **kwargs)

end = time.time()

print(end - start)

return ret

else:

ret = func(*args, **kwargs)

return ret

return inner

return timmer

# flage = false

@timmer_out(flage)

def wahaha():

time.sleep(0.1)

print("wahaha")

@timmer_out(flage)

def erguotou():

time.sleep(0.5)

print('erguotou')

wahaha()

erguotou()

乙個函式被多個裝飾器裝飾

流程:先執行第乙個裝飾器執行到被裝飾函式之前的**

在執行第二個裝飾器執行到被裝飾函式之前的**

執行被裝飾函式

在執行第二個裝飾器執行被裝飾函式之後的**

在執行第乙個裝飾器執行被裝飾函式之後的**

語法糖先執行離函式近的

# 多個裝飾器裝飾乙個函式

記錄使用者的登入日誌

計算這個函式的執行時間

如果這樣要先寫使用者的登入日誌裝飾器在使用執行時間的裝飾器

假期python複習

原則 開放封閉原則 裝飾器的固定模式 裝飾器的作用 在不想修改函式的呼叫方式但是還是想在原來的函式前後新增功能 原則 開放封閉原則 開放 對擴充套件是開放的 封閉 對修改是封閉的 語法糖 在被裝飾的函式上加 裝飾器函式名 相當於func timmer func 裝飾帶引數函式的裝飾器 args 任意...

假期週報(3)

一.本週所做的事 1 確定了暑假的目標是,學習完成並且吃透吳恩達的機器學習入門課程,並且對能夠進行淺層次的應用。2 完成了機器學習前三講內容的學習,並且記錄了學習筆記 3 開始了解關於產品方面的知識,還有產品經理所需要學習的技能 看書 2個小時 讀書筆記 1個小時 學習投資方面的知識 3個小時 0個...

假期作業3

第三章 1.dom操作 訪問節點 使用getelement系列方法訪問指定節點 getelementbyid getelementsbyname getelementsbytagname 根據層次關係訪問節點 節點屬性 屬性名稱 描述parentnode 返回節點的父節點 childnodes 返回...