From 26991a7f77b43cbc529f4304c1702737b2999174 Mon Sep 17 00:00:00 2001 From: Tim Peters Date: Tue, 25 Sep 2001 22:02:03 +0000 Subject: [PATCH] SF [#463737] Add types.CallableIterType Rather than add umpteen new obscure internal Iter types, got rid of all of them. See the new comment. --- Lib/types.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Lib/types.py b/Lib/types.py index 941940531b3..1bb560cb099 100644 --- a/Lib/types.py +++ b/Lib/types.py @@ -6,6 +6,11 @@ from __future__ import generators import sys +# Iterators in Python aren't a matter of type but of protocol. A large +# and changing number of builtin types implement *some* flavor of +# iterator. Don't check the type! Use hasattr to check for both +# "__iter__" and "next" attributes instead. + NoneType = type(None) TypeType = type ObjectType = object @@ -76,9 +81,6 @@ except TypeError: SliceType = type(slice(0)) EllipsisType = type(Ellipsis) -DictIterType = type(iter({})) -SequenceIterType = type(iter([])) -FunctionIterType = type(iter(lambda: 0, 0)) DictProxyType = type(TypeType.__dict__) del sys, _f, _C, _x # Not for export