init() iter() enter() exit() iter() next() do()[普通函数]
class A():
def __init__(self,a):
self.a=a
print ("1")
def __enter__(self):
print ('2')
return self
def __exit__(self, type, value, trace):
print ('3')
def do(self):
print ('4')
def __iter__(self):
print ('7')
return self
def __next__(self):
print ('8')
self.a=self.a+1
if self.a>3:
raise StopIteration()
else:
return 'haha'
with A(1) as a:
print('5')
a.do()
for n in a:
print (n)
print ('6')
然后是运行结果
1
2
5
4
7
8
haha
8
haha
8
6
3