python中装饰器的使用以及传参

def args_is_str(function_name):
def wapper(a):
t = type(a)
if not isinstance(t(),str):
print(“参数错误”)
else:
function_name(a)

return wapper

@args_is_str
def function_demo2(args):
print(args)
function_demo2(“aa”)

================================================================================================
def many_args(function_name):
def warpper(*args):
print(*args)
function_name(*args)
return warpper
@many_args
def function_demo3(*args):
print(*args)
function_demo3(1,2,3,4,5,6)

===============================================================================================
def dict_args(function_name):
def aa(**kwargs):
print(kwargs)
return aa
@dict_args
def function_demo4(**kwargs):
print(kwargs)
function_demo4(name=“唐维浩”,age=16,add=“上海市徐家汇交通大学研究生3号楼”,job=“程序员”,sex=“男” )

==================================================================================================
def combo_args(function_name):
def w(*args, **kwargs):
print(*args, kwargs)
return w
@combo_args
def function_demo5(*args, **kwargs):
pass
function_demo5(1,2,3,name=“唐维浩”,age=25,sex=“男”)

===============================================================================================
def runtime_args(timeout):
def out_warpper(function_name):
def warpper(*args, **kwargs):
start_time = time.time()
i = function_name()
end_time = time.time()
use_time = end_time - start_time
if use_time > timeout:
print(“函数运行超时”)
#抛出异常
raise RuntimeError(“函数运行超时”)
return i #这里的i代表的是函数的返回值
return warpper
return out_warpper
#timeout函数超时
@runtime_args(timeout=3)
def function_demo6(*args, **kwargs):
time.sleep(1)
print(“demo6运行”)
#raise RuntimeError(“函数运行卡死了”)
return 1
function_demo6()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值