魔法方法、特性和迭代器

本文介绍了如何在Python中确保子类构造函数正确调用超类的方法,以及生成器函数的yield语句如何实现逐步生成值。特别关注了如何处理嵌套列表的扁平化过程,通过递归和yield实现函数暂停与唤醒机制。
摘要由CSDN通过智能技术生成
  • 构造函数
    子类必须调用超类的构造函数,以确保基本的初始化得以执行。为此,有两种方法:调用未关联的超类构造函数,以及使用函数super,即便有多个超类,也只需调用函数super一次,条件是所有超类的构造函数也使用函数super。
  • 生成器
    包含yield语句的函数都叫生成器。与普通函数的区别是,生成器不是使用return返回一个值,而是可以生成多个值,每次一个,每次使用yield生成一个值后,函数都将被冻结,即在此停止执行,等待被重新唤醒,被重新唤醒后,韩式将从被停职的地方开始继续执行。
    例子:
def flatten(nested):
    try:
        try:
            nested + ''
        except TypeError:
            pass
        else:
            raise TypeError
        for subList in nested:
            for element in flatten(subList):
                yield element
    except TypeError:
        yield nested

nested = [[1, 2], [3, 4], 5]
for num in flatten(nested):
	print(num)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值