今天学习python时候学习到闭包和柯里化

感觉看概念时候不好理解,自己写下大概就明白点了

柯里化如下

定义一个加法函数

def add(x, y):

return x + y

这是没有柯里化之前的函数

def add(x):

def inner(y):

return x + y

return inner

这是柯里化之后的函数,返回值也是个函数,并且传入参数变成一个了。

print(add(5)(6)) 这样调用下试试,是不是可以了?

再来看个无聊的东西

def add():
    def second():
        def third():
            return 3
       return third
    return second

print(add()()())

这个函数会返回什么?

当然是3了

那么如果这样调用呢

print(add()) 会返回什么呢?,肯定会返回second函数的内存地址啊

<function add.<locals>.second at 0x02F28F18>

print(add()())

<function add.<locals>.second.<locals>.third at 0x02F58E88>

函数调用,几层调用就返回几层的返回值,这么说可能有点不严谨,但是事实就是这样的。

python 函数返回值笔记的更多相关文章

  1. python函数返回值

    2016-08-09  15:01:38 python函数返回值使用return语句,可以返回任意类型的数.如果return语句执行,它之后的所有语句都不再执行. def func(x,y): pri ...

  2. Python 函数返回值、作用域

    函数返回值 多条return语句: def guess(x): if x > 3: return "> 3" else: return "<= 3&qu ...

  3. Python 函数返回值

    本章详细介绍 返回值: 0x 00 返回值简介 0x 01 指定返回值与隐含返回值 0x 02 return 语句位置与多条 return 语句 0x 03 返回值类型 0x 04 函数嵌套 0x 0 ...

  4. day09 python函数 返回值 参数

    day09 python   一.函数     1.函数         函数是对功能的封装         语法:         定义函数:             def 函数名(形参):    ...

  5. python 函数返回值(总结)

    关键字:return 没有返回值的叫过程 def test1(): msg="我是一个过程" print(msg) 有return的叫函数 def test02(): msg=&q ...

  6. Python 函数返回值类型

    [ i for i in dir(set) if not i.startswith('_') ]   

  7. Python学习教程(learning Python)--2.3.4Python函数返回值

    本节讨论Python函数返回值问题. Python和C语言一样,也可以在函数结束时返回一个值.但在定义自己的Python函数时,是不需要指定返回值数据类型的,这和Python不关心变量的数据类型是一致 ...

  8. Python return语句 函数返回值

    return语句是从python 函数返回一个值,在讲到定义函数的时候有讲过,每个函数都要有一个返回值.Python中的return语句有什么作用,今天就来仔细的讲解一下. python 函数返回值 ...

  9. python学习——函数返回值及递归

    返回值 return语句是从python 函数返回一个值,在讲到定义函数的时候有讲过,每个函数都要有一个返回值.Python中的return语句有什么作用,今天小编就依目前所了解的讲解一下.pytho ...

随机推荐

  1. 用户授权的Sql脚本

    正文 要想成功访问 SQL Server 数据库中的数据, 我们需要两个方面的授权: 获得准许连接 SQL Server 服务器的权利: 获得访问特定数据库中数据的权利(select, update, ...

  2. Tomcat+Nginx+Redis+MySQL实现反向代理、负载均衡、session共享

    一.环境准备 时间同步 关闭防火墙 联通网络,配置yum源 软件包链接:https://pan.baidu.com/s/1qYbtpnQ 二.安装nginx 1.解决依赖关系 [root@nginx- ...

  3. chattr和lsattr命令的使用(对于root用户也无法修改删除的操作问题)

    1.chattr命令的用法:chattr [+-=] [ASacdistu] File/Directory 参数说明: +-= :分别为 [+ 增加] [- 减少] [= 设定] 属性的意思 A :当 ...

  4. ftp的安全问题

    ftp漏洞http://www.4hou.com/technology/3507.html

  5. mybatis-spring 集成

    http://www.mybatis.org/spring/zh/index.html http://www.mybatis.org/mybatis-3/zh/java-api.html 编程API: ...

  6. windows清除访问共享文件夹的登陆信息

    https://jingyan.baidu.com/article/c843ea0b70797e77931e4a96.html 当在命令提示窗口输入net use命令时,会显示本机缓存的共享登录信息, ...

  7. js五子棋游戏

    //code <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <ti ...

  8. node-disconf-client基本配置

    node-disconf-client 需要cppm install node-disconf-client var  disconf  = require (' node-disconf-clien ...

  9. pl/sql学习笔记---马士兵教程38-48

    Procedure Language/Structure query Language 一.关于语言学习 1.数据类型 2.语法   通过例子来学习很快就能明白 set serverputout on ...

  10. RestTemplate的异步使用

    参考:https://blog.csdn.net/yezhuanxu/article/details/53643248 支持异步调用AsyncRestTemplate @RequestMapping( ...