我有以下代码列出内置的所有迭代
b=dir(__builtins__)
print([x for x in b if '__iter__' in dir(x)])
我不确定为什么我会得到一个空列表
答案 0 :(得分:2)
这将做你想做的事情:
print([x for x in dir(__builtins__) if '__iter__' in dir(getattr(__builtins__, x))])
由于dir
只返回字符串,因此您需要使用getattr
来获取实际对象。
答案 1 :(得分:1)
dir(__builtins__)
是一个名单。您正在构建__builtins__
中具有__iter__
属性的所有名称的列表,这些属性都不是,因为str
没有实现__iter__
}。