14、Python函数与类的深入解析

Python函数与类的深入解析

1. 生成器的特性

生成器在Python中是一种特殊的迭代器。当你第一次迭代生成器时,它可能会被完全耗尽。例如:

fib = fibonacci(7)
print(list(fib))  # 输出: [0, 1, 1, 2, 3, 5, 8]
print(list(fib))  # 输出: []

这种行为一开始可能会让人感到困惑,但在很多情况下是合理的。生成器常用于事先不知道整个序列,或者序列在迭代过程中可能会发生变化的场景。比如,你可以使用生成器来迭代当前访问系统的用户。一旦识别出所有用户,生成器就会失效,你需要创建一个新的生成器来刷新用户列表。

2. Lambda函数

在Python中,函数不仅可以独立使用,还可以为其他功能提供额外的小功能。例如,在对列表进行排序时,你可以提供一个函数来指定排序的规则。

def get_price(house):
    return house.price

houses.sort(key=get_price)

不过,这样做似乎有点浪费函数的能力,而且需要额外的代码行和一个在 sort() 方法调用之外不会使用的名称。更好的方法是直接在方法调用中指定关键函数,这就是Python的lambda形式发挥作用的地方。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值