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

例子1.1

defa():print(111)print(a) #打印a函数的内存地址,不会对a函数有影响,a函数不会执行

print(a()) #打印a函数的打印部分,并打印a函数的返回值

打印结果:

111

None

总结:

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

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

例子1.2

defa():print(111)returnNonedefb():return a() #打印a函数中打印的部分,返回a函数的返回值。打印:111,返回None

print(b) #打印b函数的内存地址

print(b()) #打印b函数中打印的部分,打印b函数的返回值

打印结果:

111

None

代码过程解析如下:

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

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

例子2.

defa():print("aaaaaaaa") #打印:aaaaaaaa

defb():

a()#执行a函数

b()#执行b函数

打印结果:

aaaaaaaa

3,在函数的return中执行:

例子3.

defa():print("aaaaaaaa")defb():returna()

b()

打印结果:

aaaaaaaa

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

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

例子4.

defa():print(111) #打印:111

print(a) #打印a函数的内存地址

defb():return a #返回a函数的内存地址

print(b) #打印b函数的内存地址

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

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

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

例子5.1.

defa():print(111) #打印:111

defb():return a #返回a函数的内存地址

b()

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

例子5.2

defa():print(111)defb():return a() #打印a函数中打印的部分,返回a函数的返回值

b()

打印结果:

111

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

例子6.1

deff():print(11111111) #执行结果 11111111

returnNonedefa(b):print(222222) #执行结果 222222

return b #执行结果 返回b函数的内存地址

print(a(f)) #打印a函数中打印的部分,打印a函数的返回值。打印a函数中的打印部分:222222,打印a函数的返回值也就是打印f函数的内存地址

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

print(a(f)):打印a函数中打印的部分,并且打印a函数的返回值,也就是print(222222)和print(f)

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

例子6.2

deff():print(11111111) #执行结果 打印:11111111

returnNonedefa(n):print(222222) #执行结果 打印:222222

return f #打印f函数中的打印部分,返回f函数的返回值。执行结果:111111 return None

b= a(f)

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

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

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

python中的return函数-python中return的返回和执行相关推荐

  1. java lambda函数_最常用的 Java 8 中的 Lambda 函数(项目中实用笔记)

    最常用的 Java 8 中的 Lambda 函数(项目中实用笔记) 简介 Java 8 中的新特性,虽然现在都出到了Java14版本,不过在日常的开发过程中,8的版本是足够使用了,再说现在的8以上的版 ...

  2. python中模块和函数_Python中函数和模块的体验与使用

    函数基础 目标 函数的快速体验 函数的基本使用 函数的参数 函数的返回值 函数的嵌套调用 在模块中定义函数 01. 函数的快速体验 1.1 快速体验 所谓函数,就是把 具有独立功能的代码块 组织为一个 ...

  3. python中的参数函数_python中函数与参数的简介

    函数 函数就是具有某个具体功能的工具 而使用用函数能提供开发效率,减少代码冗余,提高程序的扩展性. 在Python中,函数有五大要点:分别是def.函数名.函数体.参数.返回值,以及两个英文版符号,分 ...

  4. python中的json函数_python中装饰器、内置函数、json的详解

    装饰器 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象. 先看简单例子: def run(): time.sleep(1 ...

  5. 【Python学习】常用函数(更新中……)

    系列文章目录 目录 系列文章目录 普通函数 一.输入输出函数 1. print()函数 2. input()函数 二.进制转换函数 1. bin(),oct(),hex()进制转换函数(带前缀) 2. ...

  6. python 类函数调用外部函数_python类中调用外部函数,python 函数中 定义类

    Q1:python函数里的数组如何在函数外调用出来 使用返回值的方法有两种: 可以直接把调用的函数作为变量使用 可以用调用函数给一个变量赋值 第一种情况见如下例子: l = [1,2,3,4,5] d ...

  7. python中的translate函数_python中翻译功能translate模块实现方法

    现如今,各个国家交流密切,通过翻译使我们打破了语言壁垒,而翻译在互联网上的存在也尤为普遍.python中执行翻译操作的包是translate包,通过下载安装translate包,使用translate ...

  8. python获取系统时间函数_python3中datetime库,time库以及pandas中的时间函数区别与详解...

    1介绍datetime库之前 我们先比较下time库和datetime库的区别 先说下time 在 Python 文档里,time是归类在Generic Operating System Servic ...

  9. python中的arange函数,Python中的arange是什么?和range有什么不同?

    Python中的arange是什么意思?这是很多小伙伴都比较关注的问题,今天小编为大家详细介绍一下,希望对你有所帮助. Python中的arange函数是用于创建等差数组,使用频率非常高,arange ...

最新文章

  1. 用男女朋友关系解释计算机常用概念
  2. 基于锚框与无需锚框的通用物体检测算法
  3. 访谈Brad Fitzpatrick——《编程人生》精彩样章,抢先看
  4. Linux中root下目录中没有.ssh文件
  5. 用py2exe打包后的程序一闪而过
  6. java面向对相取钱存钱_java面向对象(银行存款业务无客户)
  7. Json.Net系列教程 3.Json.Net序列化和反序列化设置
  8. datagrip调试存储过程_PLC控制柜是什么?当PLC程序设置完后,如何调试能不烧毁PLC?...
  9. Layer动态设置每一行的背景色
  10. 雪花算法生成数字id_全局唯一iD的生成 雪花算法详解及其他用法
  11. STL中常用容器的数据结构与底层实现
  12. 猴子摘香蕉问题python_[转载]猴子摘香蕉问题的状态空间表示法
  13. js用post传送数组给php格式转换
  14. sap固定资产号码范围_SAP 固定资产的配置与逻辑
  15. 解决雷电模拟器上Xposed框架不能用的问题。
  16. php mysql 聊天室_聊天室phpmysql(四)
  17. 1166 稀疏字母金字塔(1)
  18. Zhong__安装配置ElasticSearch
  19. vs code 不能正确补全结构体成员变量的解决方法
  20. 《程序员羊皮卷》荣登北京图书大厦IT图书排行榜第一名

热门文章

  1. from py4j.protocol import Py4JError ModuleNotFoundError 错误
  2. vs 编译设置obj路径_编译、连接
  3. 更新性能服务器图片介绍,图文并茂 讲述企业版Linux性能发展史
  4. e search index.php,php操作elastcisearch使用ik分词做搜索,搜索结果总为空
  5. 计算机三级网络技术总结,计算机三级网络技术总结
  6. 一只青蛙跳向三个台阶_9. 变态跳台阶
  7. QtCreator 编译时提示 warning C4819 的解决办法
  8. SetWindowPos()详解
  9. Halcon PDF文档(extension_package_programmers_manual)学习总结
  10. java web 课程设计_关于Javaweb课程设计的心得体会.doc