(original) (raw)
On Aug 24, 2010, at 8:31 AM, Benjamin Peterson wrote:
2010/8/24 Hrvoje Niksic <hrvoje.niksic@avl.com>:The \_\_length\_hint\_\_ lookup expects either no exception or AttributeError,and will propagate others. I'm not sure if this is a bug. On the one hand,throwing anything except AttributeError from \_\_getattr\_\_ is bad style (whichis why we fixed the bug by deriving our business exception fromAttributeError), but the \_\_length\_hint\_\_ check is supposed to be an internaloptimization completely invisible to the caller of list().
\_\_length\_hint\_\_ is internal and undocumented, so it can do whatever it wants.
As it happens though, list() is \_quite\_ public. Saying "X is internal and undocumented, so it can do whatever it wants" is never really realistic, especially in response to someone saying "we already saw this problem in production, \_without\_ calling / referring to / knowing about this private API".