生成器 迭代器 装饰器 代码

2018-05-20  本文已影响0人  精彩i人生

生成器 (斐波拉契数列)

    def fib(times):
        n = 0
        a,b = 0,1
        while n<times:
              print(b)
              a,b = b,a+b
              n+=1
              return 'done'

迭代器

可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。
可以使用 isinstance() 判断一个对象是否是 Iterator 对象:

    from collections import Iterator

    isinstance((x for x in range(10)), Iterator)
    True

    isinstance([], Iterator)
    False

    isinstance({}, Iterator)
    False

    isinstance('abc', Iterator)
    False

    isinstance(100, Iterator)
    False

装饰器

    def w1(fun):
        def inner():
            print("验证")
            fun()
        return inner

    def test():
        print("哈哈哈")

    test = w1(test)
    test()

    def w1(fun):
        def inner():
            print("验证")
            fun()
        return inner

    @w1 
    def test():
        print("哈哈哈")

    test()
上一篇下一篇

猜你喜欢

热点阅读