裝飾器常用方法

2022-07-18 05:27:18 字數 2948 閱讀 2925

經典呼叫方法

#

!/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')

print

(my_dic)

my_dic[

'select

']()

my_dic[

'insert

']()

my_dic[

'update

']()

my_dic[

'delete

']()

武老師寫的裝飾器

def

before(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,...