请问'__iter__'和'_iter_'qu'区别!
本帖最后由 z1991627 于 2020-12-10 11:07 编辑目前在家无聊学习Python,在看书图中遇见此问题,无法解答,求高手给个简易易懂的答案!
课本原本:
>>> astr = "python"
>>> hasattr(astr,'__iter__')
False
这里用内建函数hasattr()判断一个字符串是否是可迭代的,返回了False。用同样的方式可以判断:
>>> alst =
>>> hasattr(alst,'__iter__')
True
>>> hasattr(3, '__iter__')
False
但是实际写出代码的问题:
a =
hasattr(a,'__iter__')
True
a
hasattr(a,'__iter__')
True
hasattr(a,'_iter_')
False
刚刚使用PyCharm查询了下,应该是下划线问题, 在使用help(list.)后,所有弹出的函数都是两头双下划线,可是为什么单下划线,不提示错误显示返回结果为flase hasattr(a,b)表示去查询a有没有b属性或方法,__iter__ 是所有可迭代对象具备的方法 hjlarry 发表于 2020-12-10 11:14
hasattr(a,b)表示去查询a有没有b属性或方法,__iter__ 是所有可迭代对象具备的方法
看懂了( ̄∀ ̄),,谢谢(*°∀°)=3
页:
[1]