文档章节

跟黄哥学python序列文章之python 函数是第一类对象

黄哥Python培训
 黄哥Python培训
发布于 2016/03/13 08:55
字数 359
阅读 88
收藏 6

跟黄哥学python序列文章之python 函数是第一类对象

有人问python函数可以返回函数,php如何实现一样的功能

python 中函数是第一类对象,函数名字是函数对象的引用,函数名可以赋值给变量,可以作为参数传递给函数,可以作为函数的返回值从函数中返回。

    #! /usr/bin/python
    #coding:utf-8
    """
    参加黄哥python远程视频培训,帮你完成从不会写代码到会写代码解决问题的过渡。
    python远程视频培训
    https://github.com/pythonpeixun/article/blob/master/index.md
    python北京周末培训班
    https://github.com/pythonpeixun/article/blob/master/beijing_weekend.md
    咨询:qq:1465376564  企业内训,个人培训,请咨询黄哥电话:18610508486
    """


    def f1(f2):
        def f3():
            return f2
        return f3


    def f2():
        print("I come from f2")

    foo = f1(f2) # 返回值函数
    print(foo()) # foo()的值还是函数
    #<function f2 at 0x10c0ab140>
    foo()()  # 带扣号调用
    #I come from f2

有人问php如何实现上面的功能呢?

php匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。

    <?php


    $f2 = function(){
      return "I come from f2()";
    };

    function f1($func) {
      $f3 = function() use($func){
        return $func();
      };
      return $f3;
    }

    print f1($f2)();
    print "\n";


© 著作权归作者所有

黄哥Python培训
粉丝 39
博文 21
码字总数 14219
作品 0
海淀
私信 提问
Python 2 和 Python 3 主要区别有哪些(一)?

Guido(Python之父,仁慈的独裁者)在设计 Python3 的过程中,受一篇文章 “Python warts” 的影响,决定不向后兼容,否则无法修复大多数缺陷。---摘录自《流畅的Python》 你可能从来没有听说...

liuzhijun
2017/08/02
0
0
python 高级特性之迭代器

python学习笔记,特做记录,分享给大家,希望对大家有所帮助。 迭代器 我们已经知道,可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list、tuple、dict、set、str等;...

展菲
06/23
0
0
黄哥通过代码来说明:python语法糖

下面用一个例子来说明: #coding:utf-8 """ foo = decorator(foo) 语句的作用是将foo函数作为参数传递到decorator 返回值赋值给foo ,那么foo不再是原来的函数了 为了简化代码,python添加了...

黄哥Python培训
2015/11/13
453
0
剪刀石头布小习题三种语言python2、php、go代码

剪刀石头布小习题三种语言python2、php、go代码 # coding:utf-8 """ python核心编程6-14习题的解题思路 设计一个"石头,剪子,布"游戏,有时又叫"Rochambeau",你小时候可能玩过,下面是规则. 你和......

黄哥Python培训
2015/02/10
968
0
那些年,我们读过的python!

Python是一个强大、快速、易学、友好、开源的脚本语言。Hacker必备的语言之一。 Python - 历史由来 Python 是一种开源的面向对象的脚本语言,它起源于1989年末,当时,CWI(阿姆斯特丹国家数...

生气的散人
2014/03/21
1K
2

没有更多内容

加载失败,请刷新页面

加载更多

jQuery使用GET方式来进行异步请求

jQuery.get( url, [data], [callback] ):使用GET方式来进行异步请求 参数: url(String) : 发送请求的URL地址. data(Map) : (可选) 要发送给服务器的数据,以 Key/value 的键值对形式表示,...

前端老手
6分钟前
1
0
网络安全市场需求

最近,网络安全技能差距的热门话题流传开来。技能差距经常被紧急讨论,可以看出它在实践中的作用是很大的。但信息安全是一门广泛的学科,所以在谈论“技能差距”时需要更具体。有专家表示,真...

linuxCool
23分钟前
2
0
定期批量改密,实现高效运维,保障口令安全

随着企业IT资产规模的不断增大,各类主机、应用系统的管理也变得愈加困难。 对于系统管理员来说,保证操作系统的密码安全是其重要工作,在需要维护众多的主机时,其面临的困境将是: 1、难以...

堡垒啊
48分钟前
5
0
怎样在磁盘上查找MySQL表的大小?这里有答案

导读 我想知道 MySQL 表在磁盘上占用多少空间,但看起来很琐碎。不应该在 INFORMATION_SCHEMA.TABLES 中提供这些信息吗?没那么简单! 我想知道 MySQL 表在磁盘上占用多少空间,但看起来很琐碎...

问题终结者
今天
6
0
Spring Boot缓存实战 Redis 设置有效时间和自动刷新缓存-2

问题 上一篇Spring Boot Cache + redis 设置有效时间和自动刷新缓存,时间支持在配置文件中配置,说了一种时间方式,直接扩展注解的Value值,如: @Override@Cacheable(value = "people#${s...

xiaolyuh
今天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部