zoukankan      html  css  js  c++  java
  • 装饰器

    准备内容:*args, **kwargs
    在形参中的作用:
    	*args把多余的参数汇总成元组的形式存起来
    	**kwargs把多余的参数汇总成字典的形式存起来
    
    在实参中的作用:
    	*args,*后面的内容打散成位置实参
    	**kwargs,**后面的内容打散成关键字实参
    
    形参是汇总,实参是打散
    
    • 名称空间的'嵌套'关系是在函数定义阶段,即检测语法的时候确定的
    import time 
    
    def func(x,y,z):
    	print('%s %s %s' %(x,y,z)
    
    def timer(func):
    	def wrapper():
    		start_time = time.time()
    		res = func()
    		stop_time = time.time()
    		pritn('run time is %s' %(stop_time - start_time))
    		return res
    	return wrapper
    
    • 有参装饰器
    import time
    def timer(func):
    	def wrapper(*args,**kwargs):
    		start_time = time.time()
    		res = func(*args,**kwargs)
    		stop_time = time.time()
    		print('run time is %s' %(stop_time - start.time)
    		return res
    	return wrapper
    
    @timer
    def insex():
    	pass
    

    有参装饰器本质上就是在原来装饰器的基础上再包一层函数

    from functools import wraps
    
    def timer(func):
    	@wraps(func)
    	def wrapper(*args,**kwargs):
    		start_time = time.time()
    		res = func(*args,**kwargs)
    		stop_time = time.time()
    		print('run time is %s' %(stop_time - start_time)
    		return res
    	return wrapper
    
  • 相关阅读:
    10.C# 构造函数
    9.C# 类
    8.C#友元程序集----可访问性相关
    7.C# 多态的实现
    4.C#虚方法virtual详解
    3.C#的访问权限修饰符
    2.静态类成员、静态构造函数、静态类
    1.面向对象的基本概念
    6.C# 释放非托管资源2
    原生js实现轮播图原理
  • 原文地址:https://www.cnblogs.com/xiaoxuanworking/p/14353173.html
Copyright © 2011-2022 走看看