Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> О декораторах просто 
:(
    Опции темы
YahоО
Дата 3.11.2022, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 11.6.2015

Репутация: нет
Всего: 1



В книге "Python экспресс курс" имеется пример:  

Код

class Circle:
  all_circles = []
  def __init__(self, radius=1):
     self.radius = radius
     self.__class__.all_circles.append(self)
  def area(self):
     return self.radius * self.radius * 3.14159   
  @staticmethod
  def total_area():
     total = 0
     for c in Circle.all_circles:
        total = total + c.area()
     return total

c = Circle(3)
print(c.area())
print(Circle.total_area())

c3 = Circle(30)
print(c3.area())
print(Circle.total_area())


в нем не понятно одно единственное: почему если закомментировать строку 
# @staticmethod
то пример все равно печатает правильный результат?
Другими словами что есть запись про статические методы, что нет такой записи, все работает правильно и результат один и тот же, тогда зачем писать @staticmethod ?

Может данный пример не совсем подходит для демонстрации staticmethod,
или в нынешней версии Python 3.10 имеется что то отличное от описанного в книге 2019 года выпуска?

Это сообщение отредактировал(а) YahоО - 4.11.2022, 16:43
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1130 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.