python中的return是干嘛的-python中的return的返回与执行

author:headsen chen

date:2018-03-21 15:12:09

notice:created by headsen chen himself and not allowed to copy ,or you count law questions.

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

1220594-20180321150601895-1452825965.png =============》

1220594-20180321150620469-820693919.png

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

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

扩展:函数只有被调用或者执行的时候才会产生返回值的,不调用的时候就是放在内存中的代码主体的一部分。

当return中有执行的函数的返回值问题的取值

1220594-20180321153756052-1317082188.png

代码过程解析如下:

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

print(a()):1 打印程序运行时的主体中的print内容

2 打印该函数运行的返回值

1220594-20180321155746180-1231240339.png

将a函数的返回值也做b函数的返回值

1220594-20180321160354951-1104790989.png

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

1220594-20180321144251574-243181284.png =============》

1220594-20180321144312925-986678066.png

3,在函数的return中执行:

1220594-20180321144420583-877958695.png =============》

1220594-20180321144312925-986678066.png

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

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

1220594-20180321145530504-1179100078.png =============》

1220594-20180321145559243-1375896371.png

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

1220594-20180321145738941-373694895.png =============》

1220594-20180321145801627-1704321345.png

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

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

1220594-20180321150114504-943178135.png =============》

1220594-20180321150153646-1993135626.png

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

1220594-20180321150323197-2124574773.png =============》

1220594-20180321150438345-1867796390.png

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

1220594-20180321170012005-1028373863.png

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

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

1220594-20180321172210637-168424173.png

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

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

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值