¿Alguien sabe por qué la función os.path.join
no funciona con las subclases de str
?os.path.join con la subclase str
(estoy usando Python3.2 x64 y x86 Python2.7 en Windows y el resultado es el mismo)
Ese es el código que tengo
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'
y el resultado que quiero:
'C:\\the\\path\\some_file.txt'
pero la salida es \\some_file.txt
sin importar el valor de self
.
sé que puedo hacerlo bien str(self)
o almacenarla como self.path
y utilizar más tarde, pero ¿por qué os.join.path
no acepta una subclase str ni generará un error (como cuando se utiliza un número o cualquier tipo no cadena)?
Bueno, eso es lo que acabo de escribir en mi pregunta ... Quería saber si se trata de una implementación de error o CPython u otra cosa. Por cierto 'isinstance' devolverá True en este caso – JBernardo
Sí, tienes razón. Debe tener 'string .__ class __.__ name__ == 'str'' –
No, el intérprete no verificará esa cadena porque puedo cambiarla en cualquier momento ... – JBernardo