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实现将doc转化pdf格式文档的方法
Jan 19 Python
python读取和保存视频文件
Apr 16 Python
django ModelForm修改显示缩略图 imagefield类型的实例
Jul 28 Python
Python下应用opencv 实现人脸检测功能
Oct 24 Python
Anconda环境下Vscode安装Python的方法详解
Mar 29 Python
python读取excel进行遍历/xlrd模块操作
Jul 12 Python
Python如何给你的程序做性能测试
Jul 29 Python
python 合并多个excel中同名的sheet
Jan 22 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
Mar 03 Python
如何使用Python提取Chrome浏览器保存的密码
Jun 09 Python
python和anaconda的区别
May 06 Python
baselines示例程序train_cartpole.py的ImportError
May 20 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
Codeigniter+PHPExcel实现导出数据到Excel文件
2014/06/12 PHP
PHP常用设计模式之委托设计模式
2016/02/13 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
经典的带阴影的可拖动的浮动层
2006/06/26 Javascript
extjs grid取到数据而不显示的解决
2008/12/29 Javascript
!DOCTYPE声明对JavaScript的影响分析
2010/04/12 Javascript
JS对文本框值的判断示例
2014/03/10 Javascript
JavaScript中toString()方法的使用详解
2015/06/05 Javascript
node.js回调函数之阻塞调用与非阻塞调用
2015/11/13 Javascript
JavaScript、tab切换完整版(自动切换、鼠标移入停止、移开运行)
2016/01/05 Javascript
详解Matlab中 sort 函数用法
2016/03/20 Javascript
极力推荐10个短小实用的JavaScript代码段
2016/08/03 Javascript
基于jQuery实现滚动切换效果
2016/12/02 Javascript
走进javascript——不起眼的基础,值和分号
2017/02/24 Javascript
微信小程序 图片宽高自适应详解
2017/05/11 Javascript
json前后端数据交互相关代码
2018/09/19 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
2019/04/11 Javascript
vue2 v-model/v-text 中使用过滤器的方法示例
2019/05/09 Javascript
解决antd日期选择组件,添加value就无法点击下一年和下一月问题
2020/10/29 Javascript
Python的迭代器和生成器
2015/07/29 Python
requests和lxml实现爬虫的方法
2017/06/11 Python
Python探索之pLSA实现代码
2017/10/25 Python
pandas数据预处理之dataframe的groupby操作方法
2018/04/13 Python
Tensorflow 自定义loss的情况下初始化部分变量方式
2020/01/06 Python
Python 虚拟环境工作原理解析
2020/12/24 Python
英国Lookfantastic中文网站:护肤品美妆美发购物(英国直邮)
2020/04/27 全球购物
工厂厂长岗位职责
2013/11/08 职场文书
工厂保洁员岗位职责
2013/12/04 职场文书
护士自我鉴定总结
2014/03/24 职场文书
贸易经济专业自荐书
2014/06/29 职场文书
校园文化艺术节宣传标语
2014/10/09 职场文书
银行职员工作失误检讨书
2014/10/14 职场文书
单位工资证明范本
2015/06/12 职场文书
军训心得体会范文(2016最新篇)
2016/01/11 职场文书
vue自定义右键菜单之全局实现
2022/04/09 Vue.js
解决IIS7下无法绑定https主机的问题
2022/04/29 Servers