• python之装饰器


    装饰器:  

     1 import time
     2 def cal(l):
     3     start_time=time.time()
     4     res=0
     5     for i in l:
     6         time.sleep(0.1)
     7         res+=i
     8     stop_time = time.time()
     9     print('函数的运行时间是%s' %(stop_time-start_time))
    10     return res
    11 
    12 print(cal(range(100)))
    View Code

     装饰器预演:

     1 import time
     2 def timmer(func):
     3     def wrapper(*args,**kwargs):
     4         start_time=time.time()
     5         res=func(*args,**kwargs)
     6         stop_time = time.time()
     7         print('函数运行时间是%s' %(stop_time-start_time))
     8         return res
     9     return wrapper
    10 @timmer
    11 def cal(l):
    12     res=0
    13     for i in l:
    14         time.sleep(0.1)
    15         res+=i
    16     return res
    17 
    18 res=cal(range(10))
    19 print(res)
    View Code

     高阶函数:

      1.函数接收的参数是一个函数名
      2.函数的返回值是一个函数名
      3.满足上述条件任意一个,都可称之为高阶函数

     1 例1:
     2 import  time
     3 def foo():
     4     time.sleep(1)
     5     print('你好啊玉哥')
     6 
     7 def tests(func):
     8     start_time = time.time()
     9     func()
    10     stop_time = time.time()
    11     print('函数运行时间是%s'%(stop_time-start_time))
    12 # foo()
    13 tests(foo)
    View Code
    1 例2:
    2 def foo1():
    3     print('from the foo1')
    4 def test(func):
    5     return func
    6 
    7 ress = test(foo1)
    8 ress()
    View Code
    1 foo1 = test(foo1)
    2 foo1()
    View Code

     函数嵌套: 

    1 def father1(auth_type):
    2     def son():
    3         def grandson():
    4             print('我的爷爷是%s'%auth_type)
    5         grandson()
    6     son()
    7 father1('sqy')
    View Code
  • 相关阅读:
    Java知识系统回顾整理01基础02面向对象03方法
    可插件化拓展改造器 slot-maven-plugin
    数据治理框架
    Java读写hdfs上的avro文件
    FTPClient的使用
    Java读写hdfs上的avro文件
    图片上传预览
    css hack 用法注意
    获取get请求后面的参数
    js全局变量污染
  • 原文地址:https://www.cnblogs.com/sqy-yyr/p/9395454.html
Copyright © 2020-2023  润新知