生成器 迭代器 装饰器 代码
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()