鱼C论坛

 找回密码
 立即注册
查看: 5466|回复: 23

lambda中可以有使用yield来生成数据吗?

[复制链接]
发表于 2015-2-24 15:11:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 瞬秒爆加速 于 2015-2-24 22:05 编辑

    听小甲鱼说,lambda是匿名函数,yield要在函数中使用,那为什么
  1. lambda x : yield x
  2. SyntaxError: invalid syntax
复制代码

会报错,是我的理解有错误,还是python不支持?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-2-24 17:56:12 | 显示全部楼层
我的理解,使用上yield和return是一样的,只是是否挂起的不同。你能在lambda中用return吗?
实际上lambda x这样的形式就已经隐含了return x的语句。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-2-24 17:59:33 | 显示全部楼层
这两个东西没必要用在一起,lambda是给一些简单的功能用的,一次就用完。而yield是为生成序列用的,要多次使用并中间挂起。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-24 18:04:09 | 显示全部楼层
微逻辑 发表于 2015-2-24 17:56
我的理解,使用上yield和return是一样的,只是是否挂起的不同。你能在lambda中用return吗?
实际上lambda  ...

原来如此,是python现在不支持 lambda 里面接 yield。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-24 18:05:57 | 显示全部楼层
微逻辑 发表于 2015-2-24 17:59
这两个东西没必要用在一起,lambda是给一些简单的功能用的,一次就用完。而yield是为生成序列用的,要多次 ...

感谢你的回答,看来50% 的中奖率真的很难中。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-2-24 19:27:28 | 显示全部楼层
瞬秒爆加速 发表于 2015-2-24 18:05
感谢你的回答,看来50% 的中奖率真的很难中。

第三次还不中就不科学了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-24 20:53:24 | 显示全部楼层
微逻辑 发表于 2015-2-24 17:59
这两个东西没必要用在一起,lambda是给一些简单的功能用的,一次就用完。而yield是为生成序列用的,要多次 ...

一人一次,是不是回复一次的意思?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-2-24 21:35:39 | 显示全部楼层
lambda是一个返回值。可以返回一个返回值,不过不能让返回值返回一个返回值。挂起一样。
测测RP~~。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-2-24 21:36:04 | 显示全部楼层
卧槽,真的有50%?!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-2-24 21:36:41 | 显示全部楼层
怒水3发~~。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-2-24 21:50:24 | 显示全部楼层
wei_Y 发表于 2015-2-24 21:35
lambda是一个返回值。可以返回一个返回值,不过不能让返回值返回一个返回值。挂起一样。
测测RP~~ ...

我的不准确,lambda x: Expression 本身就是返回一个x作为形参的表达式的值,相当于:return Expression,所以不能再用返回了。
rp都不咋样,看样是一人只有一次。

评分

参与人数 1鱼币 +20 收起 理由
wei_Y + 20 哇哈哈,胖兄我中了~~!

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-2-24 21:55:58 | 显示全部楼层

回帖奖励 +20 鱼币

微逻辑 发表于 2015-2-24 21:50
我的不准确,lambda x: Expression 本身就是返回一个x作为形参的表达式的值,相当于:return Expression ...

还是胖兄解释的好。
神啊,今年RP这么差么,这才初几啊。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-24 22:00:37 | 显示全部楼层
本帖最后由 瞬秒爆加速 于 2015-2-24 22:02 编辑
wei_Y 发表于 2015-2-24 21:35
lambda是一个返回值。可以返回一个返回值,不过不能让返回值返回一个返回值。挂起一样。
测测RP~~ ...

不带这样的,居然拼概率 + 绕口令
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-24 22:01:28 | 显示全部楼层
wei_Y 发表于 2015-2-24 21:55
还是胖兄解释的好。
神啊,今年RP这么差么,这才初几啊。。

你不是抽中了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-24 22:04:38 | 显示全部楼层
微逻辑 发表于 2015-2-24 21:50
我的不准确,lambda x: Expression 本身就是返回一个x作为形参的表达式的值,相当于:return Expression ...

那有办法 弄出 lambda 与 yield 的组合吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-2-25 12:56:15 | 显示全部楼层

回帖奖励 +10 鱼币

瞬秒爆加速 发表于 2015-2-24 22:04
那有办法 弄出 lambda 与 yield 的组合吗?

写个yield函数,然后在Expression里调用 使用其返回值

不过貌似没啥意义,标准的舍近求远
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-25 13:08:18 | 显示全部楼层
rowang 发表于 2015-2-25 12:56
写个yield函数,然后在Expression里调用 使用其返回值

不过貌似没啥意义,标准的舍近求远

能贴一段实现的代码吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-2-25 17:43:44 | 显示全部楼层
瞬秒爆加速 发表于 2015-2-25 13:08
能贴一段实现的代码吗?

是我想错了,使用lambda的目的就在于匿名

如果再定义一个函数就失去原本的意义了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-25 17:45:59 | 显示全部楼层
rowang 发表于 2015-2-25 17:43
是我想错了,使用lambda的目的就在于匿名

如果再定义一个函数就失去原本的意义了

那就无法实现了吧?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-2-26 09:01:44 | 显示全部楼层
看看那
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-14 22:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表