Python语法练习
注:大家觉得博客好的话,别忘了点赞收藏呀,本人每周都会更新关于人工智能和大数据相关的内容,内容多为原创,Python Java Scala SQL 代码,CV NLP 推荐系统等,Spark Flink Kafka Hbase Hive Flume等等~写的都是纯干货,各种顶会的论文解读,一起进步。
今天继续和大家分享一下Python语法练习_迭代器2
#博学谷IT学习技术支持
文章目录
前言
迭代器案例2_自定义range函数
一.迭代器案例
通过此迭代器案例,熟悉掌握迭代器的运用
class MyRange(object):
def __init__(self, num):
self.num = num
def __iter__(self):
return MyRangeIter(self.num)
class MyRangeIter(object):
def __init__(self, stop_num):
self.stop_num = stop_num
self.index = 0
def __next__(self):
if self.index == self.stop_num:
raise StopIteration
temp = self.index
self.index += 1
return temp
if __name__ == '__main__':
for i in MyRange(10):
print(i)
二.迭代器yield方法转变
class MyRange(object):
def __init__(self, num):
self.num = num
def __iter__(self):
number = 0
while number < self.num:
yield number
number += 1
if __name__ == '__main__':
for i in MyRange(10):
print(i)
三.生成器
生成器 = 迭代器 + 可迭代对象
# 生成器原理
# class MyGenerator(object):
#
# def __init__(self, stop_value):
# self.stop_value = stop_value
# self.begin = 0
#
# def __iter__(self):
# return self
#
# def __next__(self):
# temp = self.begin
# if temp >= self.stop_value:
# raise StopIteration
# self.begin += 1
# return temp
# 定义一个生成器
def my_range(stop_value):
number = 0
while number < stop_value:
yield number
number += 1
if __name__ == '__main__':
my01 = my_range(10)
for i in my01:
print(i)
总结
迭代器练习2:通过迭代器实现range函数