On 28/02/21 1:17 pm, Cameron Simpson wrote:
[its length in bytes] is presented via the object's __len__ method,

BUT... It also has a __iter__ value, which like any Box iterates over
the subboxes.

You're misusing __len__ here. If an object is iterable and
also has a __len__, its __len__ should return the number of
items you would get if you iterated over it. Anything else
is confusing and can lead to trouble, as you found here.

But is there a cleaner way to do this?

Yes. Give up on using __len__ to get the length in bytes,
and provide another way to do that.

--
Greg

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to