Как и большинство других классов Python, класс WindowsPath
, начиная с pathlib
, реализует метод по умолчанию " dunder string " (__str__
).Оказывается, что строковое представление, возвращаемое этим методом для этого класса, является в точности строкой, представляющей путь к файловой системе, который вы ищете.Вот пример:
from pathlib import Path
p = Path('E:\\x\\y\\z')
>>> WindowsPath('E:/x/y/z')
p.__str__()
>>> 'E:\\x\\y\\z'
str(p)
>>> 'E:\\x\\y\\z'
Встроенная функция str
фактически вызывает метод " dunder string " под капотом, поэтому результаты точно такие же.Кстати, как вы можете легко догадаться, непосредственный вызов метода « dunder string » позволяет избежать уровня косвенности, что приводит к ускорению выполнения.
Вот результаты тестов, которые я провел на своем ноутбуке:
from timeit import timeit
timeit(lambda:str(p),number=10000000)
>>> 2.3293891000000713
timeit(lambda:p.__str__(),number=10000000)
>>> 1.3876856000000544
Даже если вызов метода __str__
может показаться немного уродливым в исходном коде, как вы виделивыше, это приводит к ускорению времени выполнения.