[Python-Dev] File system path PEP, part 2
Ethan Furman
ethan at stoneleaf.us
Fri May 13 12:34:36 EDT 2016
On 05/13/2016 08:43 AM, Brett Cannon wrote:
>> a minor technical query:
>>
>> try:
>> return path.__fspath__()
>>
>> Would I be right in saying that in practice this will actually end up
>> being type(path).__fspath__() to match the behaviour of all(?) other
>> dunder methods?
>
> I wasn't planning on it because for most types the accessing of the
> method directly off of the type for magic methods is because of some
> special struct field at the C level that we're pulling from. Since we're
> not planning to have an equivalent struct field I don't see any need to
> do the extra work of avoiding the instance participating in method
> lookup. Obviously if people disagree for some reason then please let me
> know (maybe for perf by avoiding the overhead of checking for the method
> on the instance?).
I would say use `type(x).__fspath__`. I'm not aware of any other
__dunder__ method that doesn't access the attribute from the type
instead of the instance, and I see no point in making this one different.
I know there's a line in the Zen about foolish conistencies, but I
suspect there's a corollary about foolish inconsistencies. ;)
--
~Ethan~
More information about the Python-Dev
mailing list