經典呼叫方法
#!/usr/bin/env python
#-*- coding:utf-8 -*-
#by wk
import
time
import
random
'''一:編寫函式,(函式執行的時間是隨機的)
'''def
my_random_time(func):
r_time = random.randint(0,5)
print('
函式將在%s秒後執行
' %r_time)
time.sleep(r_time)
func(*args, **kwargs)
return
@my_random_time
defrandom_func():
print('
開始執行了')
random_func()
裝飾器帶引數
#!/usr/bin/env python
#-*- coding:utf-8 -*-
#by wk
'''三:編寫裝飾器,為函式加上認證的功能
'''def login_func(choose_type='
file'):
deflogin_func2(func):
username = input('
請輸入使用者名稱: ')
password = input('
請輸入密碼: ')
if choose_type == '
file':
with open(
'user.txt
','r
',encoding='
utf-8
') as user_r:
read_str =user_r.readline()
read_dict =eval(read_str)
if read_dict['
name
'] == username and read_dict['
password
'] ==password:
func(*args, **kwargs)
login_status = 'ok'
else
:
print('
登入失敗')
#return login_status
return
return
login_func2
@login_func(choose_type='
file')
defuser_login():
print('
登入成功')
user_login()
帶引數方法2
#!/usr/bin/env python
#-*- coding:utf-8 -*-
#by wk
my_dic={}
defmy_func(my_var):
def my_dic[my_var] =func
return
@my_func(
'select')
deffunc1():
print('
select')
@my_func(
'insert')
deffunc2():
print('
insert')
@my_func(
'update')
deffunc3():
print('
update')
@my_func(
'delete')
deffunc4():
print('
delete')
(my_dic)
my_dic[
'select
']()
my_dic[
'insert
']()
my_dic[
'update
']()
my_dic[
'delete
']()
武老師寫的裝飾器
defbefore(request,kargs):
print('
i am before')
defafter(request,kargs):
print('
i am after')
deffilter(before_func,after_func):
defouter(main_func):
def before_result =before_func(request,kargs)
if(before_result !=none):
return
before_result
main_result =main_func(request,kargs)
if(main_result !=none):
return
main_result
after_result =after_func(request,kargs)
if(after_result !=none):
return
after_result
return
return
outer
@filter(before,after)
defindex(request,kargs):
print("
i am index")
index('w
','k
')
裝飾器 odoo常用裝飾器
此時的self僅代表模型本身,不含任何記錄資訊。當你認為這段 跟self中的資料無關時,就加上 api.model裝飾器,有點像類中的類方法 multi則指self是多個記錄的合集。因此,常使用for in語句遍歷self。multi通常用於 在tree檢視中點選多條記錄,然後執行某方法,那麼那個方...
python 常用裝飾器
對於類的方法,python內建的 property裝飾器就是負責把乙個方法變成屬性呼叫的 class student object property defscore self return self.score score.setter defscore self,value ifnot isin...
python常用裝飾器
定義 在 執行期間動態增加功能的方式,稱之為 裝飾器 decorator 本質上,decorator就是乙個返回函式的高階函式。import functools,time defexecute time func 定義裝飾器 functools.wraps func 把名字改回來 def args,...