On Wed, May 6, 2020 at 6:27 PM David Mertz <mertz@gnosis.cx> wrote:
I don't think being a function versus a classmethod is important here.  Just that the underlying name is *callable*.

But wait a minute, zip isn't just a "callable", it's a class, and adding more methods to it seems perfectly natural, just like lots of other built-in classes.

>>> zip
<class 'zip'>
>>> int
<class 'int'>
>>> int.to_bytes(97, 4, 'little')
b'a\x00\x00\x00'