面試題程式設計題15 python 裝飾器簡單例項

2022-06-26 17:33:09 字數 1613 閱讀 2254

from time import

sleep

import

time

#python裝飾器庫 - functools

from functools import

wraps

#裝飾普通函式

defdecorator(fun):

@wraps(fun)

def start_time=time.time()

fun()

end_time=time.time()

print(end_time-start_time)

return

@decorator

deffunc():

sleep(1)

#如上所示,有了 @ ,我們就可以省去func = decorator(func)這一句了,直接呼叫 func() 即可得到想要的結果。你們看到了沒有,func() 函式不需要做任何修改,只需在定義的地方加上裝飾器

func()

func=decorator(func)#

func()#

#print('

steve

'+func.__name__)#

裝飾類方法,帶引數self

defdecorator1(fun):

def start_time =time.time()

fun(number)

end_time =time.time()

print(end_time -start_time)

return

class

example():

@decorator1

deffunc(self):

sleep(1)

example().func()

#類裝飾器

class

decorator():

def__init__

(self,f):

self.f=f

def__call__(self, *args, **kwargs):

print('

start decoration!')

self.f()

print('

enf decoration!')

@decorator

deffunc():

print('

func()')

func()

#裝飾器鏈(多個裝飾器)

defdecorator1(fun):

@wraps(fun)

def

print('

decotator1!')

fun()

return

defdecorator2(fun):

@wraps(fun)

def

print('

decotator2!')

fun()

return

@decorator2

@decorator1

deffunc():

print('

func()!')

func()

Python程式設計 面試題

1.什麼是lambda函式,有什麼好處?匿名函式,對於只用一次的函式,不需要單獨定義 2.請寫出一段python 實現刪除乙個list裡邊的重複元素 list set lst 3.介紹一下except的用法和作用 try.except.else.finally 異常處理,捕獲出錯異常 4.有沒有乙個...

python程式設計面試題

1.實現需求為 註冊 登入 檢視暱稱的功能 def usern username input 請輸入賬號 n password input 請輸入密碼 n return username,password defregister 註冊函式封裝 username,password usern temp...

python語法面試題 python面試題

1.去重,集合 集合的乙個重要特點是 自動去除重複的值 li 1,2,3,1,1,2,2,3,3 去除重複的元素 set set li 轉換為集合,因為集合會自動去重。print set li list set 將集合轉換為列表print li 2.生成器 規則 生成器函式,或者生成器表示式,在呼叫...