Читаю книгу Доусона “Программируем на Phyton” 2013
на стр.230 такой пример:
class Critter(): total = 0 @staticmethod #декоратор def status () : print("\nBcero зверюшек сейчас" . Critter.total) def __init__ (self, name): рrint("Появилась на свет новая зверюшка!") self.name = name Critter.total += 1 # основная часть crit1= Сrittеr("зверюшка 1") crit2 = Сrittеr("зверюшка 2") critЗ = Сrittеr("зверюшка 3") Critter.status() print(crit1 .total)
Автор поясняет, что в программе он создаёт атрибут класса (total), метод конструктор (__init__), метод класса (status)
Здесь всё понятно.
Но автор уточняет, что метод status является “статическим” методом, т.к. он поставил перед его объявлением
декоратор “@staticmethod ”
Я не понял: 1) зачем нужно делать этот метод статическим?(если уберу декоратор - всё нормально работает)
2)чем отличается статический метод от нестатического?
Я пытался разобраться сам, но, к сожалению, не нашёл пояснений в книге.
Автор вводит эти понятия как-бы “мимоходом” не поясняя их смысл.
Помогите, кто разобрался