python 生成器表达式主要事项

本文探讨了生成器表达式与生成器函数的区别,以及在Python编程中如何根据实际情况选择使用。介绍了生成器表达式的简洁性和适用场景,以及在参数传递中的特殊规则。

生成器表达式是创建生成器的简洁句法,这样无需先定义函数再调用。不过,生成器函数灵活得多,可以使用多个语句实现复杂的逻辑,也可以作为协程使用。

遇到简单的情况时,可以使用生成器表达式,因为这样扫一眼就知道代码的作用。

根据我的经验,选择使用哪种句法很容易判断:如果生成器表达式要分成多行写,我倾向 于定义生成器函数,以便提高可读性。此外,生成器函数有名称,因此可以重用。

如果函数或构造方法只有一个参数,传入生成器表达式时不用写一对调用函 数的括号,再写一对括号围住生成器表达式,只写一对括号就行了,如下面例子所示:然而,如 果生成器表达式后面还有其他参数,那么必须使用括号围住,否则会抛出 SyntaxError 异常:

def __mul__(self, scalar): 
	if isinstance(scalar, numbers.Real): 
		return Vector(n * scalar for n in self) 
	else: 
		return NotImplemented

目前所见的 Sentence 类示例说明了如何把生成器当作典型的迭代器使用,即从集合中获取 元素。不过,生成器也可用于生成不受数据源限制的值。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值