https://www.arabpython.com/2026/09/python-classmethod-staticmethod-instance-method-difference.html