列出内置的iterables

时间:2014-09-06 01:30:59

标签: python

我有以下代码列出内置的所有迭代

b=dir(__builtins__)
print([x for x in b if '__iter__' in dir(x)])

我不确定为什么我会得到一个空列表

2 个答案:

答案 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__ }。

相关问题