2026-02-17 15:37:38
(x)range和生成器有些类似,但毕竟不是生成器。你可以使用type看他们的类型。
返回全体自然数的生成器如下:
#!/usr/bin/env python
# coding=utf-8
"""
Generator in python
"""
from __future__ import (absolute_import, division, print_function,
unicode_literals, with_statement)
def naturals_gen():
i = 1
while True:
yield i
i += 1
def main():
print(type(xrange(10)))
print(type(naturals_gen()))
naturals = naturals_gen()
for i in naturals:
if i > 10:
break
print(i)
if __name__ == '__main__':
main()
如果不加if和break,那就会一直循环打印所有正整数。
运行结果如下:
<type 'xrange'>
<type 'generator'>
1
2
3
4
5
6
7
8
9
10