吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1027|回复: 3
收起左侧

[求助] 请问'__iter__'和'_iter_'qu'区别!

[复制链接]
z1991627 发表于 2020-12-10 10:53
本帖最后由 z1991627 于 2020-12-10 11:07 编辑

目前在家无聊学习Python,在看书图中遇见此问题,无法解答,求高手给个简易易懂的答案!
课本原本:

>>> astr = "python"
>>> hasattr(astr,'__iter__')
False
这里用内建函数hasattr()判断一个字符串是否是可迭代的,返回了False。用同样的方式可以判断:

>>> alst = [1,2]
>>> hasattr(alst,'__iter__')
True
>>> hasattr(3, '__iter__')
False
但是实际写出代码的问题:

a = [1,'2']
hasattr(a,'__iter__')
True
a
[1, '2']
hasattr(a,'__iter__')
True
hasattr(a,'_iter_')
False

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| z1991627 发表于 2020-12-10 11:09
刚刚使用PyCharm查询了下,  应该是下划线问题,    在使用help(list.)后,所有弹出的函数都是两头双下划线,可是为什么单下划线,不提示错误  显示返回结果为flase
hjlarry 发表于 2020-12-10 11:14
hasattr(a,b)表示去查询a有没有b属性或方法,__iter__ 是所有可迭代对象具备的方法
 楼主| z1991627 发表于 2020-12-10 11:40
hjlarry 发表于 2020-12-10 11:14
hasattr(a,b)表示去查询a有没有b属性或方法,__iter__ 是所有可迭代对象具备的方法

看懂了( ̄∀ ̄),,谢谢(*°∀°)=3
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 10:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表