Jak zwracać nowy obiekt w metodach?

0

Jest taka klasa:

class Myclass:
    def __init__(self):
        self.a = 0
        
    def inc(self):
        self.a = self.a + 1
        return self
    
    def __str__(self):
        return str(self.a)
    

co powinna zwracać metoda inc tak aby zwracała obiekt klasy Myclass, ale niezwiązany z poprzednim?

Bo w obecnej sytuacji jak napiszę:

m = Myclass()
m.inc()
m.inc()
m.inc()
print(m)

to otrzymam:

3

a chciałbym otrzymać:

0

żeby otrzymać:

3

chciałbym musieć napisać:

m = Myclass()
m = m.inc()
m = m.inc()
m = m.inc()
print(m)
1
class Myclass:
    def __init__(self, a = 0):
        self.a = a

    def inc(self):
        return Myclass(self.a + 1)

    def __str__(self):
        return str(self.a)
1
spartanPAGE napisał(a):
return Myclass(...)

Lepiej:

```python
return self.__class__(...)

1 użytkowników online, w tym zalogowanych: 0, gości: 1