zoukankan      html  css  js  c++  java
  • 【python】函数式编程

    No1:

    函数式编程:即函数可以作为参数传递,也可以作为返回值

     No2:

    map()函数接收两个参数,一个是函数,一个是Iterablemap将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回

    No3:

    reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)

    No4:

    排序

    No5:

    函数作为返回值,每个返回值函数式不一样的(应该是对象地址不一样)

    No6:

    返回闭包时牢记一点:返回函数不要引用任何循环变量,或者后续会发生变化的变量

    原因就在于返回的函数引用了循环变量,但它并非立刻执行,所以循环变量都是最后一个值

    解决方案

    这样f(i)就会立即执行

    No7:

    匿名函数

     No8:

    decorator在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)。

    @log放到now()函数的定义处,相当于执行了语句:

    now = log(now)

    3层嵌套的效果是这样的:

    now = log('execute')(now)

    No9:

    偏函数:functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单

     No10:

    一个.py文件就称之为一个模块(Module)

    每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。__init__.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是它所在的包名

    系统自带了sys模块,自己的模块就不可命名为sys.py,否则将无法导入系统自带的sys模块

    No11:

    模块调用

     
    #!/usr/bin/env python3
    #可以让这个hello.py文件直接在Unix/Linux/Mac上运行
    # -*- coding:utf-8 -*-
    
    ' a test module '
    #任何模块代码的第一个字符串都被视为模块的文档注释
    
    __author__ = 'Wang Lei'
    
    import sys
    import greet
    
    def test():
        args = sys.argv
        if len(args)==1:
            print('Hello,world')
        elif len(args)==2:
            print('Hello,%s!' % args[1])
        else:
            print('Too many arguments!')
            
    if __name__=='__main__':
        #test()
        print(greet.greeting('wa'))
    #!/usr/bin/env python3
    # -*- coding:utf-8 -*-
    
    ' a test module '
    
    __author__ = 'Wang Lei'
    
    def _private_1(name):
        return 'Hello,%s' % name
    
    def _private_2(name):
        return 'Hi,%s' % name
    
    def greeting(name):
        if len(name)>3:
            return _private_1(name)
        else:
            return _private_2(name)

     运行结果

    PS D:wangleipython> python hello.py
    Hi,wa

    No12:

    安装常用模块

    anaclnda地址:https://www.anaconda.com/download/#windows

    安装好以后要把anaclnda的路径和其下的scripts路径添加到环境变量即可通过import 引入任何第三方模块

  • 相关阅读:
    C# 获取文件的修改时间、访问时间、创建时间
    Nhibernate Or多条件查询
    C# 将GridView当前页数据导成Execl
    C# 清空文件夹
    TreeView默认收缩
    JS控制控件的隐藏显示
    div置顶,不随滚动条滚动而滚动
    js 父窗体与子窗体的调用
    树形菜单的绑定以及链接
    2010.10.16 OA项目组一周报告 CQ
  • 原文地址:https://www.cnblogs.com/anni-qianqian/p/9112334.html
Copyright © 2011-2022 走看看