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中还原JavaScript的escape函数编码后字符串的方法
Aug 22 Python
django上传图片并生成缩略图方法示例
Dec 11 Python
Python通过调用mysql存储过程实现更新数据功能示例
Apr 03 Python
python使用Turtle库绘制动态钟表
Nov 19 Python
python3使用matplotlib绘制散点图
Mar 19 Python
使用Python画股票的K线图的方法步骤
Jun 28 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
Aug 08 Python
使用Django和Postgres进行全文搜索的实例代码
Feb 13 Python
python实现连连看游戏
Feb 14 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
Apr 07 Python
python中绕过反爬虫的方法总结
Nov 25 Python
Python调用系统命令os.system()和os.popen()的实现
Dec 31 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文件上传原理简单分析
2011/05/29 PHP
php获取根域名方法汇总
2014/10/28 PHP
php猴子选大王问题解决方法
2015/05/12 PHP
jquery的ajaxSubmit()异步上传图片并保存表单数据演示代码
2013/06/04 Javascript
深入理解JavaScript系列(22):S.O.L.I.D五大原则之依赖倒置原则DIP详解
2015/03/05 Javascript
jQuery选择器源码解读(三):tokenize方法
2015/03/31 Javascript
纯js实现仿QQ邮箱弹出确认框
2015/04/29 Javascript
JavaScript记录光标在编辑器中位置的实现方法
2016/04/22 Javascript
基于Bootstrap重置输入框内容按钮插件
2016/05/12 Javascript
基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
2016/05/12 Javascript
ES6中Proxy与Reflect实现重载(overload)的方法
2017/03/30 Javascript
微信小程序图片宽100%显示并且不变形
2017/06/21 Javascript
vue计算属性和监听器实例解析
2018/05/10 Javascript
使用vue打包时vendor文件过大或者是app.js文件很大的问题
2018/06/29 Javascript
JavaScript文本特效实例小结【3个示例】
2018/12/22 Javascript
webpack结合express实现自动刷新的方法
2019/05/07 Javascript
微信小程序点击顶部导航栏切换样式代码实例
2019/11/12 Javascript
es6中class类静态方法,静态属性,实例属性,实例方法的理解与应用分析
2020/02/15 Javascript
bootstrap-closable-tab可实现关闭的tab标签页插件
2020/08/09 Javascript
Python中用format函数格式化字符串的用法
2015/04/08 Python
在Python中使用mongoengine操作MongoDB教程
2015/04/24 Python
windows及linux环境下永久修改pip镜像源的方法
2016/11/28 Python
python中通过预先编译正则表达式提高效率
2017/09/25 Python
对Python的交互模式和直接运行.py文件的区别详解
2019/06/29 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
2019/08/27 Python
Python循环实现n的全排列功能
2019/09/16 Python
使用python 将图片复制到系统剪贴中
2019/12/13 Python
pytorch 实现打印模型的参数值
2019/12/30 Python
幼儿园小班教学反思
2014/02/02 职场文书
教师节活动主持词
2014/04/02 职场文书
优秀团干部个人事迹
2014/05/29 职场文书
财务管理专业自荐书
2014/09/02 职场文书
2015年度女工工作总结
2015/10/22 职场文书
MySQL中InnoDB存储引擎的锁的基本使用教程
2021/05/26 MySQL
字节飞书面试promise.all实现示例
2022/06/16 Javascript
Redis+AOP+自定义注解实现限流
2022/06/28 Redis