Use Python @propery to fix bad interface (first attempt)
This might have been a good solution, but now we cannot use this as a "fix" as this would change the public interface from p.age to p.age()
examples/classes/person/person2.py
from datetime import datetime class Person(): def __init__(self, years): self.set_birthyear(years) def get_birthyear(self): return datetime.now().year - self._birthyear def set_birthyear(self, years): self._birthyear = datetime.now().year - years def age(self, years=None): if (years): self.set_birthyear(years) else: return self.get_birthyear() p = Person(19) print(p.age()) # 19 p.age(p.age() + 1) print(p.age()) # 20