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}"