Питон @classmethod В И @staticmethod для новичка?

Для начала скажу, что я зарабатываю через вот этого брокера, проверен он временем! А вот хороший пример заработка, человек зарабатывает через интернет МНОГО МНОГО МНОГО и показывает все на примерах, переходи и читай! Добавь страницу в закладки. А теперь читаете информацию ниже и пишите свой отзыв

Я знаю, что есть много ресурсов на эту тему, но так как английский не мой родной язык и это мой первый день на Python, мне нужна помощь: может кто-нибудь объяснит мне смысл @classmethod и @staticmethod?

Мне нужно знать не только разницу, но и смысл. Я читал документацию, но я буквально не мог понять.

Если кто-нибудь может дать мне четкое определение и пример, что было бы здорово – я лучше учатся на примере.

Насколько я понимаю, @classmethod рассказывает класса, это метод, который должен быть унаследован на подклассы, или… что-то.

Однако, в чем смысл? Почему не просто определить метод класса без добавления @classmethod или @staticmethod или любой @ определениями?

ТЛ;др: когда я должен использовать их, почему я должен использовать их, и как я должен их использовать?

Я довольно продвинутый с c++, поэтому используя более продвинутые концепции программирования не должно быть проблемой.

Не стесняйтесь дать мне соответствующий пример на C++, если это возможно.

@staticmethod функция-это не более чем функция, определенная внутри класса.

Его можно вызывать без создания экземпляра класса первого. Это определение является неизменным через наследование.

  • Python не должны инстанцировать привязан-метод для объекта.
  • Это облегчает читабельность кода: видя @staticmethod, мы знаем, что метод не зависит от состояния объекта;

@classmethod функции также могут вызываться без создания экземпляра класса, но его определение следующее Суб класса, а не родительского класса, через наследование, может быть переопределен подклассом.

Это потому, что первый аргумент для @classmethod в функции всегда должны быть CLS (класс).

  • Фабричные методы, которые используются, чтобы создать экземпляр класса, используя например какой нибудь предварительной обработки.
  • Статические методы при вызове статических методов: если разделить статические методы в несколько статических методов, не следует жестко кодировать имя класса, но использовать методы класса
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Оставить комментарий

Ваш email нигде не будет показанОбязательные для заполнения поля помечены *

*