python递归生成器

def fat(nest):
    try :
        try:nest+''
        except TypeError:pass
        else:raise TypeError
        for sublist in nest:
            for element in fat(sublist):
                yield element
    except TypeError:
        yield nest
            
nest=[['tee'],[1,2,[3]]]
for num in fat(nest):
    print num

试着将一个传入的对象和一个字符串拼接,看看会不会出现TypeError,这是检查一个对象是不是似类于字符串的最简单,最快速的方法

如果表达式nest+''引发了一个TypeError,它就会被忽略,然而如果没有引发TypeError,那么内嵌的else语句就会引发一个它自己的TypeError异常,这就会按照原来的样子生成类似于字符串的对象

输出结果

>>> 
tee
1
2
3
>>> 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值