python之装饰器

普通函数1

import time
def f1():
print( 'This is a function1')
def f2():
print( 'This is a fuction2')
def print_current_time( fun):
print(time.time())
fun()
print_current_time(f1)
print_current_time(f2)


普通函数2

import time
def decorator( fun):
def wrapper():
print(time.time())
fun()
return wrapper

def f1():
print( ' This is a function')

f = decorator(f1)
f()

1524504690.4488041

 This is a function


函数3 (装饰器)

import time
def decorator( fun):
def wrapper():
print(time.time())
fun()
return wrapper

@decorator
def f1():
print( ' This is a function')


f( 1)
1524505116.4509928
 This is a function


函数3 (装饰器)(一个参数)

import time
def decorator( func):
def wrapper( func_n):
print(time.time())
func(func_n)
return wrapper

@decorator
def f1( func_name):
print( ' This is a function '+func_name)


f1( 'hello')
1524505338.6536906

 This is a function hello


函数四(装饰器)(两个参数)


import time
def decorator( func):
def wrapper(* func_n):
print(time.time())
func(*func_n)
return wrapper

@decorator
def f1( func_name):
print( ' This is a function '+func_name)

@decorator
def f2( func_name1, func_name2):
print( ' This is a function2 '+ func_name1)
print( ' This is a function2 '+ func_name2)

f1( 'hello')
f2( 'lalal', 'yyoyo')
1524505737.8087363
 This is a function hello
1524505737.8087363
 This is a function2 lalal
 This is a function2 yyoyo



函数五(装饰器 )(三个函数或以上)

import time
def decorator( func):
def wrapper(* func_n,** kw):
print(time.time())
func(*func_n,**kw)
return wrapper

@decorator
def f1( func_name): #wrapper(func_n) func(func_n)
print( ' This is a function '+func_name)

@decorator
def f2( func_name1, func_name2): # wrapper(*func_n) func(func_n)
print( ' This is a function2 '+ func_name1)
print( ' This is a function2 '+ func_name2)

@decorator
def f3 ( func_name1 , func_name2 ,** kw ):# wrapper (*func_n ,**kw ) func(*func_n,**kw)
print( ' This is a function2 '+ func_name1)
print( ' This is a function2 '+ func_name2)
print(kw)

@decorator
def f4( fun1 , fun2, fun3, fun4): #wrapper(*func_n) func(*func_n)
print(fun1)
print(fun2)
print(fun3)
print(fun4)
f1( 'this is func1')
f2( 'this is func2', 'this is func2222')
f3( 'test func1', 'test func2', a= 1, b= 2, c = '123')
f4( '1', '2', '3', '4')
1524506681.5375907
 This is a function this is func1
1524506681.5375907
 This is a function2 this is func2
 This is a function2 this is func2222
1524506681.5375907
 This is a function2 test func1
 This is a function2 test func2
{'a': 1, 'b': 2, 'c': '123'}
1524506681.5375907
1
2
3
4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值