python中return的返回和执行实例


Posted in Python onDecember 24, 2019

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

例子1.1

def a():
 print(111)

print(a) # 打印a函数的内存地址,不会对a函数有影响,a函数不会执行
print(a()) # 打印a函数的打印部分,并打印a函数的返回值

打印结果:

<function a at 0x0000000001D02E18>

111

None

总结:

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

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

例子1.2

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

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

打印结果:

<function b at 0x00000000021EB8C8>

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.

def a():
 print('aaaaaaaa') # 打印:aaaaaaaa
def b():
 a() # 执行a函数

b() # 执行b函数

打印结果:

aaaaaaaa

3,在函数的return中执行:

例子3.

def a():
 print('aaaaaaaa')
def b():
 return a()

b()

打印结果:

aaaaaaaa

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

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

例子4.

def a():
 print(111) # 打印:111
print(a) # 打印a函数的内存地址
def b():
 return a # 返回a函数的内存地址
print(b) # 打印b函数的内存地址

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

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

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

例子5.1.

def a():
 print(111) # 打印:111
def b():
 return a # 返回a函数的内存地址

b()

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

例子5.2

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

b()

打印结果:

111

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

例子6.1

def f():
 print(11111111) # 执行结果 11111111
 return None
def a(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

def f():
 print(11111111) # 执行结果 打印:11111111
 return None
def a(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 相关文章推荐
使用Python编写Linux系统守护进程实例
Feb 03 Python
Python批量按比例缩小图片脚本分享
May 21 Python
Python解惑之True和False详解
Apr 24 Python
Python读取Word(.docx)正文信息的方法
Mar 15 Python
Python简单读写Xls格式文档的方法示例
Aug 17 Python
Numpy截取指定范围内的数据方法
Nov 14 Python
python实现H2O中的随机森林算法介绍及其项目实战
Aug 29 Python
基于python3抓取pinpoint应用信息入库
Jan 08 Python
关于Python 中的时间处理包datetime和arrow的方法详解
Mar 19 Python
python求前n个阶乘的和实例
Apr 02 Python
Python json读写方式和字典相互转化
Apr 18 Python
python实现批量提取指定文件夹下同类型文件
Apr 05 Python
Python文件操作函数用法实例详解
Dec 24 #Python
Python的形参和实参使用方式
Dec 24 #Python
python接口自动化如何封装获取常量的类
Dec 24 #Python
使用PyOpenGL绘制三维坐标系实例
Dec 24 #Python
Python 限定函数参数的类型及默认值方式
Dec 24 #Python
python+opencv实现车牌定位功能(实例代码)
Dec 24 #Python
Python scrapy增量爬取实例及实现过程解析
Dec 24 #Python
You might like
php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
2011/05/09 PHP
php中DOMElement操作xml文档实例演示
2013/03/26 PHP
ThinkPHP实现跨模块调用操作方法概述
2014/06/20 PHP
php实用代码片段整理
2016/11/12 PHP
Yii框架实现图片上传的方法详解
2017/05/20 PHP
iis 7下安装laravel 5.4环境的方法教程
2017/06/14 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
jquery DOM操作 基于命令改变页面
2010/05/06 Javascript
Jquery图形报表插件 jqplot简介及参数详解
2012/10/10 Javascript
js+jquery常用知识点汇总
2015/03/03 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
2015/06/10 Javascript
JavaScript截取、切割字符串的技巧
2016/01/07 Javascript
巧方法 JavaScript获取超链接的绝对URL地址
2016/06/14 Javascript
Jquery实现遮罩层的简单实例(就是弹出DIV周围都灰色不能操作)
2016/07/14 Javascript
jQuery实现圣诞节礼物传送(花式轮播)
2016/12/25 Javascript
canvas压缩图片转换成base64格式输出文件流
2017/03/09 Javascript
jQuery使用正则验证15/18身份证的方法示例
2017/04/27 jQuery
详解利用 Vue.js 实现前后端分离的RBAC角色权限管理
2017/09/15 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
2017/10/09 Javascript
解决layui富文本编辑器图片上传无法回显的问题
2019/09/18 Javascript
antd配置config-overrides.js文件的操作
2020/10/31 Javascript
[01:12]DOTA2次级职业联赛 - Newbee.Y 战队宣传片
2014/12/01 DOTA
python实现探测socket和web服务示例
2014/03/28 Python
浅谈Python基础之I/O模型
2017/05/11 Python
Python绘制七段数码管实例代码
2017/12/20 Python
python实现树形打印目录结构
2018/03/29 Python
TensorFlow实现模型评估
2018/09/07 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
python实现上传文件到linux指定目录的方法
2020/01/03 Python
欧洲最大的美妆零售网站:Feelunique
2017/01/14 全球购物
自我鉴定范文200字
2013/10/02 职场文书
俄罗斯商务邀请函
2014/01/26 职场文书
产品质量承诺书
2014/03/27 职场文书
党员干部群众路线个人整改措施
2014/09/18 职场文书
歌咏比赛主持词
2015/06/29 职场文书
意外事故赔偿协议书
2016/03/22 职场文书