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进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
Apr 25 Python
Web服务器框架 Tornado简介
Jul 16 Python
python测试驱动开发实例
Oct 08 Python
python Flask实现restful api service
Dec 04 Python
神经网络理论基础及Python实现详解
Dec 15 Python
python读取图片并修改格式与大小的方法
Jul 24 Python
判断python字典中key是否存在的两种方法
Aug 10 Python
pip安装python库的方法总结
Aug 02 Python
感知器基础原理及python实现过程详解
Sep 30 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
Aug 04 Python
python快速安装OpenCV的步骤记录
Feb 22 Python
OpenCV-Python实现轮廓的特征值
Jun 09 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 分页函数multi() discuz
2009/06/21 PHP
浅析PHP原理之变量分离/引用(Variables Separation)
2013/08/09 PHP
PHP使用Alexa API获取网站的Alexa排名例子
2014/06/12 PHP
ThinkPHP实现将SESSION存入MYSQL的方法
2014/07/22 PHP
PHP扩展模块memcached长连接使用方法分析
2014/12/24 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
2017/03/23 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
利用js跨页面保存变量做菜单的方法
2008/01/17 Javascript
基于Jquery的文字滚动跑马灯插件(一个页面多个滚动区)
2010/07/26 Javascript
用jquery设置按钮的disabled属性的实现代码
2010/11/28 Javascript
nodejs 实现模拟form表单上传文件
2014/07/14 NodeJs
JavaScript中for循环的使用详解
2015/06/03 Javascript
JavaScript获取并更改input标签name属性的方法
2015/07/02 Javascript
js 判断数据类型的几种方法
2017/01/13 Javascript
JavaScript原生数组Array常用方法
2017/04/06 Javascript
详解基于vue的移动web app页面缓存解决方案
2017/08/03 Javascript
详解express + mock让前后台并行开发
2018/06/06 Javascript
JS原生瀑布流效果实现
2019/04/26 Javascript
vue-cli+iview项目打包上线之后图标不显示问题及解决方法
2019/10/16 Javascript
关于angular 8.1使用过程中的一些记录
2020/11/25 Javascript
JavaScript实现原型封装轮播图
2020/12/27 Javascript
python矩阵转换为一维数组的实例
2018/06/05 Python
对pytorch网络层结构的数组化详解
2018/12/08 Python
flask框架jinja2模板与模板继承实例分析
2019/08/01 Python
如何用OpenCV -python3实现视频物体追踪
2019/12/04 Python
python实现暗通道去雾算法的示例
2020/09/27 Python
美国全球旅游运营商:Pacific Holidays
2018/06/18 全球购物
水上运动奥特莱斯:Wasterports Outlet
2018/08/08 全球购物
俄罗斯首家面向中国消费者的一站式购物网站:Wruru
2020/05/08 全球购物
物理教育专业毕业生推荐信
2013/11/03 职场文书
一份报关员的职业规划范文
2014/01/08 职场文书
事业单位公务员的职业生涯规划
2014/01/15 职场文书
党员干部三严三实心得体会
2014/10/13 职场文书
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
2021/04/03 Python
苹果可能正在打击不进行更新的 App
2022/04/24 数码科技
numpy array找出符合条件的数并赋值的示例代码
2022/06/01 Python