zoukankan      html  css  js  c++  java
  • python--第四天总结

    lambda表达式

    处理简单函数
    自动返回

    学习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,即:

    1. # 普通条件语句
    2. if 1 == 1:
    3.     name = 'wupeiqi'
    4. else:
    5.     name = 'alex' 

    # 三元运算
     name = 'wupeiqi' if 1 == 1 else 'alex'

    对于简单的函数,也存在一种简便的表示方式,即:lambda表达式

    # ###################### 普通函数 ######################

    1. # 定义函数(普通方式)
    2. def func(arg):
    3.     return arg + 1
    4. # 执行函数
    5. result = func(123)


    # ###################### lambda ######################

    1. # 定义函数(lambda表达式)
    2. my_lambda = lambda arg : arg + 1
    3. # 执行函数
    4. result = my_lambda(123)

      lambda存在意义就是对简单函数的简洁表示

    内置函数 二

    一、map

    遍历序列,对序列中每个元素进行操作,最终获取新的序列。

    eg:

      每个元素增加100 

    1. li = [11, 22, 33]
    2. new_list = map(lambda a: a + 100, li)

    两个列表对应元素相加

    1. li = [11, 22, 33]
    2. sl = [1, 2, 3]
    3. new_list = map(lambda a, b: a + b, li, sl)

    二、filter

    对于序列中的元素进行筛选,最终获取符合条件的序列


    获取列表中大于12的所有元素集合
    1. li = [11, 22, 33]
    2. new_list = filter(lambda arg: arg > 22, li) #filter第一个参数为空,将获取原来序列

    三、reduce

    对于序列内所有元素进行累计操作

    获取序列所有元素的和

    1. li = [11, 22, 33]
    2. result = reduce(lambda arg1, arg2: arg1 + arg2, li)
    3. # reduce的第一个参数,函数必须要有两个参数
    4. # reduce的第二个参数,要循环的序列
    5. # reduce的第三个参数,初始值

    yield生成器

    1、对比range 和 xrange 的区别

    1. >>> print range(10)
    2. [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    3. >>> print xrange(10)
    4. xrange(10)
    如上代码所示,range会在内存中创建所有指定的数字,而xrange不会立即创建,只有在迭代循环时,才去创建每个数组
    def nrange(num):
        temp = -1
        while True:
            temp = temp + 1
            if temp >= num:
                return
            else:
                yield temp
    
    自定义生成器nrange
    自定义生成器nrange

     2、文件操作的 read 和 xreadlinex 的的区别

    1. read会读取所有内容到内存
    2. xreadlines则只有在循环迭代时才获取

    装饰器

    装饰器是函数,只不过该函数可以具有特殊的含义,装饰器用来装饰函数或类,使用装饰器可以在函数执行前和执行后添加相应操作。

    1. def wrapper(func):
    2.     def result():
    3.         print 'before'
    4.         func()
    5.         print 'after'
    6.     return result
    7. @wrapper
    8. def foo():
    9.     print 'foo'

    import functools def wrapper(func): @functools.wraps(func) def wrapper(): print 'before' func() print 'after' return wrapper @wrapper def foo(): print 'foo'
    #!/usr/bin/env python
    #coding:utf-8
     
    def Before(request,kargs):
        print 'before'
         
    def After(request,kargs):
        print 'after'
     
     
    def Filter(before_func,after_func):
        def outer(main_func):
            def wrapper(request,kargs):
                 
                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 wrapper
        return outer
         
    @Filter(Before, After)
    def Index(request,kargs):
        print 'index'
         
         
    if __name__ == '__main__':
        Index(1,2)
    View Code
    
    
    


  • 相关阅读:
    多测师讲解htm_L标题标签001_高级讲师 肖sir
    Shell特殊变量介绍与实践 $0
    shell 变量定义技巧总结
    shell 环境变量的知识小结
    前端 chrome查看html样式基本操作
    shell 命令 env
    date 命令
    shell 命令 set命令
    shell export 命令
    前端 html span标签
  • 原文地址:https://www.cnblogs.com/wjx1/p/4982756.html
Copyright © 2011-2022 走看看