[Python-Dev] PySequence_Check but no __len__
Ivan Pozdeev
vano at mail.mipt.ru
Fri Jun 22 15:17:19 EDT 2018
More information about the Python-Dev mailing list
Fri Jun 22 15:17:19 EDT 2018
- Previous message (by thread): [Python-Dev] PySequence_Check but no __len__
- Next message (by thread): [Python-Dev] PySequence_Check but no __len__
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 22.06.2018 22:07, Terry Reedy wrote: > On 6/22/2018 7:17 AM, Christian Tismer wrote: > >> >> My problem is to find out how to deal with a class which has >> __getitem__ but no __len__. >> >> The documentation suggests that the length of a sequence can always >> be obtained by len(). >> https://docs.python.org/3/reference/datamodel.html > > It says that plainly: "The built-in function len() returns the number > of items of a sequence. " > > https://docs.python.org/3/library/collections.abc.html#collections-abstract-base-classes > > > says that a Sequence has both __getitem__ and __len__. > > I am surprised that a C-API function calls something a 'sequence' > without it having __len__. > A practical sequence check is checking for __iter__ . An iterator doesn't necessarily have a defined length -- e.g. a stream or a generator. -- Regards, Ivan
- Previous message (by thread): [Python-Dev] PySequence_Check but no __len__
- Next message (by thread): [Python-Dev] PySequence_Check but no __len__
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list