Обычно методы класса используются для объявления альтернативных конструкторов класса, так называемые factory methods. То есть класс метод обычно возвращает
cls(*args, **kwargs)
Вызывается просто
MyClass.classmeth(*args, **kwargs)
Вот например в pandas (у тебя был вопрос, значит используешь библиотеку) есть класс DataFrame. Ты можешь создать экземпляр класса
DataFrame(data)
А можешь использовать методы класса для альтернативного метода создания экземпляра (из другой структруры)
DataFrame.from_dict(some_dict)
так вот from_dict это метод класса.
Метод класса он оперирует на уровне класса и не имеет доступа к экземпляру класса. Есть еще статические методы, это по сути python функция которая "связана с классом" но не имеет доступа не экземпляру не к классу.
В чем у тебя здесь смысл попытки использовать методы класса лично мне не понятно. Потому что обычно вызвав метод класса мы инициализируем экземпляр с динамически измененным (данным методом) состоянием класса. Например мы можем поменять значение атрибута класса. Вот тебе на скорую руку бесполезный пример.
class MyClass:
currency = 'Dollar'
def __init__(self, amaunt):
self.amaunt = amaunt
def __str__(self):
return f'MyClass({self.amaunt, self.currency})'
@classmethod
def euro(cls, amount):
cls.currency = 'Euro'
return cls(amount)
dollar = MyClass(100)
print(dollar)
euro = MyClass.euro(100)
print(euro)
Если снова вызовешь print(dollar), то он тебе выведет euro. Потому что атрибут класса общий для всех экземпляров оказался измененным.