classMyList(object):
"""自定义的可迭代对象,迭代器 容器"""
def __init__(self):
self.container = []
self.i = 0
def add(self, item):
"""向对象中添加数据"""
self.container.append(item)
def __next__(self):
"""对迭代器每次迭代的时候被调用"""
if self.i < len(self.container):
item = self.container[self.i]
self.i += 1
return item
else:
raise StopIteration
def __iter__(self):
return self
my_list1 = MyList()
my_list1.add(100)
my_list1.add(200)
my_list1.add(300)
it =my_list1.__iter__()
from collectionsimport Iterator
print(isinstance(it,Iterator))
for num in my_list1:
print(num)
# iterator =my_list1.__iter__()
#
#iterator.__next__() # 100 i=0
#iterator.__next__() # 200 i=1
#
#
# iterator2 =my_list1.__iter__()
#iterator2.__next__() # 100 i=0
# # 数据 属性 类属性 对象属性/实例属性
#
# # 函数 方法 对象方法 类方法 静态方法
#
# def object_fun(self):
# # 对象方法
# 通过self可以使用对象属性 类属性
#
# @classmethod
# def class_fun(cls):
# # 类方法
# 通过cls可以使用类属性
#
# @staticmethod
# def static_fun():
# # 静态方法
# 如果不通过类名,那么类属性与对象属性都无法使用