关于函数中对于返回值的理解

在学习高阶函数的过程中,涉及到两条重点内容:
1 函数可以作为实参传入另一个函数
这里的函数可以有两种理解,
将a函数名作为参数传入b函数,如果b函数体内有a()语句,则会执行a函数,与a()的结果一致,标志执行一个函数。
将“a()”作为参数,传入b函数,相当于将a函数的返回值传入b函数,如果a函数的返回值为‘a’,则在b函数中遇到a()语句,同样会执行a函数

2 返回值包含函数名
这里的意思就是将a函数的函数名作为参数传到b函数中

因此这里做一下小总结:
1 函数a代表该函数体的内存地址,因此print(a)得到的是内存地址
2 函数a()放在函数结束的地方代表执行该函数,同时a()=该函数的返回值

例子1:
def lg():
print('I am nice person')
return 'I am blake'
print(lg)

执行结果:<function lg at 0x101f21ea0> #打印函数体的内存地址

例子2:
def lg():
print('I am nice person')
return 'I am blake'
lg()
执行结果:I am nice person #执行函数体

例子3:
def lg():
print('I am nice person')
return 'I am blake'
print(lg())
执行结果:
I am nice person
I am blake # 首先执行函数体(打印'I amnice person'),然后通过打印‘lg()’的返回值‘I am blake’

例子4:
def lg():
print('I am nice person')
return lg # 返回函数自己

def mg(func):
func()
print('I love the world')
return 0

mg(lg())
执行结果:
I am nice person # lg()第一次被执行
I am nice person # 在mg()函数体内‘func()’再次被执行
I love the world # 执行mg()中剩下的语句
#在lg这个函数中,lg作为返回值再次传入mg函数中作为参数替换‘func’,并在函数体内,‘func()’中作为lg()再次被执行

转载于:https://blog.51cto.com/13539551/2053914

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值