from time importsleep
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.生成器 規則 生成器函式,或者生成器表示式,在呼叫...