转载

author:headsen  chen

date:2018-03-21  15:12:09

notice:created by  headsen chen himself  and not allowed to copy ,or you count law  questions.

1,打印函数名和打印函数的执行过程的区别:

     =============》       

总结:打印函数名print(a),结果是把该函数的内存地址打印出来了。

     打印函数的执行:print(a( )),打印该函数的执行程序中的print的部分,最后把return的内容也打印出来,没有定义return的函数打印None。

扩展:函数只有被调用或者执行的时候才会产生返回值的,不调用的时候就是放在内存中的代码主体的一部分。 

           当return中有执行的函数的返回值问题的取值

代码过程解析如下:

 print(b) 打印变量b(函数)的内存地址,不会对b函数有任何的影响,b函数不会执行。

 print( b() ) :

   《1》先执行b 函数  ,由于b函数没有定义主体内容,返回空

   《2》打印b函数的返回值:return a() ,由于此时的b函数在运行的,所以return里面的函数也会运行。

      《2.1》,运行 a()  ,打印 111出来。

      《2.2》,由于a() 函数里面没有定义return的值,取none作为a()函数的返回值, 也把这none return 给b函数。此时的b函数的返回值也是none,所以print(b())= None  

 print(a()):1 打印程序运行时的主体中的print内容

                          2 打印该函数运行的返回值 

     

    将a函数的返回值也做b函数的返回值

 2,函数内容主体中执行:

      =============》     

3,在函数的return中执行:

      =============》    

总结:当一个函数执行的时候,当该函数的return内容是一个可执行的程序的时候,该程序也会正常的执行。不过此时的返回值的概念是:打印该程序中的print部分,并打印该函数的返回值,若没有定义返回值就返回None

4,打印函数名(本质就是打印变量名对应的内存地址:也就是该函数对应的内容主体的内存地址)

        =============》       

 return  a() 的情况: 尽管这次return的是a() ,但由于b()函数并没有调用,仍然还是打印两个函数的内存地址

      =============》      

 5,函数中的 return中的内容是常量和变量(可执行的函数)的情况下的函数执行问题

return中为一个常量时: 因为b()函数里面是空的。而return的a是个变量,就是一个内存地址

    =============》      

return中是一个变量(可执行的函数),则当b函数运行时,b函数的主体和return里面的程序都会运行,效果如下: 

  =============》    

 6,打印传递参数的高阶函数的返回值,一定要理解a(f)就是在执行a函数

解析:打印 a (f)函数的整个过程相当于打印不带参数的 print(a())的过程!!!!,即a(b)函数会被执行并且打印返回值。

同理:给一个高阶函数传参后赋值也会执行该函数,例如:

上例中的b =a(f)  分两步理解:

     1,a(f)  ,相当于不带参数的a(),意思是执行a函数,a(f) 就是导入参数 f 的情况下执行该函数

     2,b= a(f), 就是把a(f)函数运行后的返回值 赋值给b,供后续的变量b来调用。

python中的return的返回与执行相关推荐

  1. python中return的理解-python中的return的返回与执行

    author:headsen chen date:2018-03-21 15:12:09 notice:created by headsen chen himself and not allowed ...

  2. linux中popen汉字乱码,Python中使用subprocess.Popen返回值乱码解决方案

    Python中使用subprocess.Popen返回值乱码解决方案 问题描述 在python 2.7中,使用subprocess.Popen()调用*nix命令,并通过管道,获取其输出,并将其返回值 ...

  3. python中使用cv2.findContours返回值too many values to unpack (expected 2)错误如何解决

    python中使用cv2.findContours返回值too many values to unpack (expected 2)错误如何解决 具体原因: opencv-python 版本还有一定关 ...

  4. python中的return函数-python中return的返回和执行

    1打印函数名和打印函数的执行过程的区别 例子1.1 defa():print(111)print(a) #打印a函数的内存地址,不会对a函数有影响,a函数不会执行 print(a()) #打印a函数的 ...

  5. Python 中 3 个不可思议的返回

    第一个:神奇的字典键 some_dict = {} some_dict[5.5] = "Ruby" some_dict[5.0] = "JavaScript" ...

  6. L13-理解Python中的特殊的返回值-函数

    文章目录 说明 1.初识返回值-函数 2. 辨识函数对象 3. 闭包的注意事项 谨记 如何避免? 说明 在Python中,一切函数即对象.函数同时也可视作变量,作为一个返回值.下面通过实际案例来说明下 ...

  7. python中的return和print的区别_python中return和print的区别(详细)

    Huskiesir python最近正在研究.今天,我面临一个问题,那就是,返回和印刷的区别.双方都能输出结果.的区别是什么?闲话少说,看下面的例子.# Code1: def break_words( ...

  8. python中input()函数的返回是什么类型_Python中input函数的用法是什么?

    "input()"函数是输入函数,用于接受一个标准输入数据,且返回string类型.在Python3中,去除了"raw_input()"函数,仅保留了" ...

  9. python中emuterate用法_跨平台模拟执行 - AndroidNativeEmu实用手册

    原标题:跨平台模拟执行 - AndroidNativeEmu实用手册 本文为看雪论坛精华文章 看雪论坛作者ID:StriveMario 安装 AndroidNativeEmu有什么用? Android ...

最新文章

  1. java 序列化 缓存_java_缓冲流、转换流、序列化流
  2. parameter缩略语_缩略语
  3. 线上经验总结:一台 Java 服务器可以跑多少个线程?
  4. wap开发中取到真实的手机号码
  5. [Java] 初始化与清理
  6. 用计算机写试卷反思,100分试卷反思怎么写
  7. BitLocker Partition Recovery
  8. 获取某个view的高度或者宽度
  9. 爬虫提取非结构化数据
  10. 成为明星程序员的独特秘密|极客原创
  11. Linux磁盘管理与文件系统(实验详解,一看就懂)
  12. NetBeans IDE中运行当前文件快捷键
  13. golang定时任务的使用
  14. tomcat 更新class自动重启
  15. python函数定义与参数_Python函数的定义方式与函数参数问题实例分析
  16. boot spring test 文档_SpringBoot入门十,添加junit单元测试
  17. mysql 半同步 插件_编写半同步复制插件
  18. nginx PHP执行 502 bad gateway 或空白解决笔记
  19. 企业开展网络营销常用的十九种方法
  20. 微信小游戏 UserInfoButton 获取用户信息

热门文章

  1. 论文Attention-guided CNN for image denoising解读
  2. idea开启自动热部署自动化devtools
  3. SpringBoot学习总结(个人笔记)
  4. uni-app中text文本组件的基本使用
  5. waitpid调用返回出错提示: No child processes问题
  6. ssas 面试题_多维模型的SSAS面试问题
  7. SQL截断增强功能:SQL Server 2019中的静默数据截断
  8. Cocos2d-x学习笔记(3)
  9. NHibernate Linq中Null值排序的解决方法
  10. 关于RDLC使用导出PDF文件时,中文乱码解决方案