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,打印函数名和打印函数的执行过程的区别:

e568c6ab4de708d869e5127e07bf2354.png    =============》      

3c5de25e3c1e21c834edd3455d793e0c.png

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

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

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

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

c684467cf1444e58e23cd21e9c29e66b.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 打印该函数运行的返回值

5e1db8f36d24d4713a3e382a8187d80b.png

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

b17024735978a0274b1fec5afeddc11d.png

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

b3cd41af09ed4d8032cc13cc4eac8e0b.png      =============》

341ea7a7b6c2382291a553e028c6c203.png

3,在函数的return中执行:

f0182ddb47851b826ecbf5226cb45b2b.png      =============》

341ea7a7b6c2382291a553e028c6c203.png

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

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

5423f489adca03b179b0c2d83bebce2a.png        =============》

cb8aeebe34e74729c6f92f86ce4a427a.png

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

2d10913ba27d47cdf03c87271f073044.png     =============》     

c95533419b98810aac1e481a70254acc.png

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

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

90e385764716537cbcbfbeb02eefe3b8.png    =============》      

15b4f951c70f51b4163cffc4e03a720b.png

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

ae16cc63647f4c03ce9850993c60d50a.png =============》   

09c82b2d5bc908550bd48069f4499609.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值