Суть метода @classmethod, @staticmethod, @property
Подскажите пожалуйтса, конкретно для каких ситуаций эти методы предназначены?. Потому что код, где они используются, можно же выполнять и без них. Например:
class Gamers:
count = 0
@classmethod
def show_gamers(cls):
return cls.count
выполнение же не изменится если убрать метод:
class Gamers:
count = 0
def show_gamers():
return Gamers.count
Точно так же и с @staticmethod, @property ...
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
А это потому что вы не используете параметр cls, а вот если бы использовали, то и вопроса бы не было:
class Gamers:
count = 0
@classmethod
def show_gamers(cls):
return cls.count
^^^ универсальный указатель на класс
Теперь можно наследоваться от этого класса и спокойно использовать этот метод, не переписывая его, он будет работать с любым классом, а не только с жёстко вами прописанным. Ну, если такова задумка, конечно.