from collections import Iterable
b = isinstance("abc",Iterable)
print(b)
b = isinstance({},Iterable)
print(b)
b = isinstance([],Iterable)
print(b)
b = isinstance((x for x in range(10)),Iterable)
print(b)
b = isinstance(100,Iterable)
print(b)
运行输出结果如下:
TrueTrueTrueTrueFalse
判断一个对象是否是迭代器可以使用如下语句:
from collections import Iterator
b = isinstance("abc",Iterator)
print(b)
b = isinstance({},Iterator)
print(b)
b = isinstance([],Iterator)
print(b)
b = isinstance((x for x in range(10)),Iterator)
print(b)
deffibonacci():
a, b = 0, 1for i in range(10):
print("----1----")
yield b
print("----2----")
a, b = b, a+b
print("----3----")
generator = fibonacci()
for x in range(3):
v = next(generator)
#还有一个等价的写法如下:#v = a.__next__()
print(v)
deffibonacci():
a, b = 0, 1for i in range(10):
print("----1----")
yield b
print("----2----")
a, b = b, a+b
print("----3----")
generator = fibonacci()
# 每次for循环都会从上次yield暂停的地方继续执行,直到遇见StopIteration异常。for x in generator:
print(x)
deftest():for i in range(5):
print("----1----")
temp = yield i
print("----2----")
print(temp)
print("----3----")
t = test()
a = t.__next__()
print(a)
b = t.send("hello")
print(b)