79378034

Date: 2025-01-22 14:14:35
Score: 1.5
Natty:
Report link

To further complete the answer of @chrslg, first note that pathlib.Path does not return itself:

from pathlib import Path

obj1 = Path("./")
obj2 = Path(obj1)

print(id(obj1) == id(obj2))
>>> False

If you wanted to really copy what pathlib is doing, you should rely on a copy constructor as others pointed out. Another proposition - closer to what pathlib is doing - could be:

class MyIndex:
    def __init__(self, *args):
        if len(args) == 1 and isinstance(args[0], MyIndex):
            self.letter = args[0].letter
            self.number = args[0].number
        elif len(args) == 1:
            self.letter, self.number = args[0].split()
        elif len(args) == 2:
            self.letter, self.number = args
        else:
            raise ValueError()

    def __repr__(self):
        return f"MyIndex(letter='{self.letter}', number={self.number})"

    def __str__(self):
        return f"{self.letter}{self.number}"
Reasons:
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Unregistered user (0.5):
  • User mentioned (1): @chrslg
  • Low reputation (1):
Posted by: quickfakename