迭代器中的__iter__()返回值
本帖最后由 Xx_Nemesis_xX 于 2020-10-7 12:00 编辑小白想问一个简单的问题,
class MyRev:
def __init__(self,args):
self.Mylist = list(args)
self.Lenlist = len(self.Mylist)
def __iter__(self):
return self
def __next__(self):
self.Lenlist -= 1
if self.Lenlist < 0:
raise StopIteration
return (self.Mylist,self.Lenlist)
请问如果令实例对象
myRev = MyRev("love")
for i in myRev:
print(i,end="")
('e', 3)('v', 2)('o', 1)('l', 0)
其中的__iter__函数返回的self在哪里体现呢?这个细节点麻烦指点,谢谢~ 本帖最后由 疾风怪盗 于 2020-10-7 11:56 编辑
return 语句下面的代码是不执行的
和break一样
如果你用pycharm之类的IDE,就会发现报错提示了
myRev = Myev("icarus")这个也拼写错了
class MyRev:
def __init__(self,args):
self.Mylist = list(args)
self.Lenlist = len(self.Mylist)
def __iter__(self):
return self
def __next__(self):
self.Lenlist -= 1
if self.Lenlist < 0:
raise StopIteration
return (self.Mylist,self.Lenlist)
myRev = MyRev("icarus")
for i in myRev:
print(i,end="")
('s', 5)('u', 4)('r', 3)('a', 2)('c', 1)('i', 0)
Process finished with exit code 0
疾风怪盗 发表于 2020-10-7 11:53
return 语句下面的代码是不执行的
和break一样
感谢指点,顺便问下__iter__()语句的返回值self在哪里体现呢? Xx_Nemesis_xX 发表于 2020-10-7 12:02
感谢指点,顺便问下__iter__()语句的返回值self在哪里体现呢?
魔法方法和装饰器,这两块都没学好,感觉挺抽象的,平常也用的不多
看这个解释吧https://blog.csdn.net/will130/article/details/50920501
疾风怪盗 发表于 2020-10-7 12:06
魔法方法和装饰器,这两块都没学好,感觉挺抽象的,平常也用的不多
看这个解释吧https://blog.csdn.ne ...
好的,感谢指点
页:
[1]