为了账号安全,请及时绑定邮箱和手机立即绑定

用lambda表达式定义的函数,调用方式与返回值

用lambda表达式定义的函数,调用方式与返回值

qq_strengthoo_0 2017-03-13 10:36:12
#使用lambda表达式定义一个函数 >>> f = (lambda x: map(sys.stdout.write, x)) #调用f >>> t = f(['a', '1']) #返回 a1 #调用f >>> f(['a', '1']) #返回 a1[None, None]请问第二次调用时为什么会返回a1[None, None],原理是什么又:使用列表解析f = lambda x: [sys.stdout.write(line) for line in x]也是相同的情况
查看完整描述

2 回答

?
qq_strengthoo_0

TA贡献2条经验 获得超2个赞


t = f(['a', '1'])是调用了f,并把f的返回值赋给t,a1是调用函数过程中打印的结果。

f(['a', '1'])是调用f,把返回值打印到交互界面,所以先打印了a1,后打印了f的值[None, None]

查看完整回答
1 反对 回复 2017-03-15
?
qq_strengthoo_0

TA贡献2条经验 获得超2个赞

自己好像明白一点了,a1是sys.stdout.write执行以后打印到交互界面的结果,但sys.stdout.write本身并没有返回值给列表,所以列表是[None, None]

查看完整回答
1 反对 回复 2017-03-14
  • 2 回答
  • 0 关注
  • 2022 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信