python3, 生成器无法使用next()从上一次运行停止处继续执行,为什么,有替代方法吗?

def function():
n = 0
while n <= 10:
yield n
n += 1

for i in range(10):
print(function().next()) # print(next(function()))

print('*'*10)
for x in function():
print(x)
'''
输出:
0
0
0
0
0
0
0
0
0
0


0
1
2
3
4
5
6
7
8
9
10

'''

要达到你想要效果, 要对function 做实例化

def function():
    n = 0
    while n <= 10:
        yield n
        n += 1

c = function()
for i in range(10):
    print(c.__next__()) # print(next(function()))