On Sat, Jan 11, 2014 at 9:44 PM, Ethan Furman <[email protected]> wrote:
> On 01/11/2014 06:19 PM, Daniel da Silva wrote:
>
>>
>> One use case is:
>> Suppose you have existing function that accepts a /bytes/ object. If you
>> subclass /bytes/ and want it to be guaranteed
>> to work with that function, you can override/__bytes__()/ to use the
>> logistics of your subclass implementation.
>>
>
> I don't think so, for two reasons:
>
> 1) bytes objects do not have a __bytes__ method,
>
> 2) if the function is expecting a bytes object, it is unlikely to call
> bytes() on it.
In general __typename__() methods are for explicit typename(obj)
conversion. There is __int__(), __str__(), etc. They are what is behind
int('3') == 3 and str(4) == '4'. If for no other reason, __bytes__() is
there for symmetry. I agree with you that realistic use cases are hard to
think of.
Does that answer your question better?
All the best,
Daniel
--
https://mail.python.org/mailman/listinfo/python-list