Кто-нибудь знает, почему функция os.path.join
не работает с подклассами str
?
(я использую Python3.2 x64 и Python2.7 x86 в Windows, и результат тот же)
Это код, который у меня есть
class Path(str):
def __add__(self, other):
return Path(os.path.join(self, other))
p = Path(r'C:\the\path')
d = p + 'some_file.txt'
и результат, который я хочу:
'C:\\the\\path\\some_file.txt'
но вывод равен \\some_file.txt
независимо от значения self
.
Я знаю, что могу сделать либо str(self)
, либо сохранить его как self.path
и использовать позже, но почему os.join.path
не принимает подкласс str и не вызывает ошибку (например, когда вы используете число или любой другой тип строки)?