170 похожих чатов

Если мне нужно использовать методы класса, можно вызывать методы через

объект этого класса. Но иногда встречаются примеры кода, где в нужном классе упоминается функция @classmethod get_instance(cls, *args). И получают уже через эту функцию инстанс класса. Сам вопрос, в каких случах необходимо использовать эту функцию для получения инстанса? Что простое получение объекта object = A() не трушный способ?

12 ответов

6 просмотров

Это нужно что сделать что-то с самым классом (аттрибуты, методы), то есть изменение повлияет на самого класса и на всех инстансов этого класса (+ наследованных классов, если не ошибаюсь) class A: DEBUG = False @classmethod def change_mode(cls, flag: bool) -> None: cls.DEBUG = flag def main(self) -> Any: if self.DEBUG: print('Started:', self)

Егор- Автор вопроса
Nodiru Gaji
Это нужно что сделать что-то с самым классом (аттр...

Ты можешь и через a= A() обратиться к сеттеру, поменять атрибут класса. Тема не раскрыта

Егор
Ты можешь и через a= A() обратиться к сеттеру, пом...

При создание инстанса делается новый объект. Сеттер менять только для созданного инстанса

Егор- Автор вопроса
Nodiru Gaji
При создание инстанса делается новый объект. Сетте...

Ну создал один раз объект другого класса, с ним работаешь

Егор
Ну создал один раз объект другого класса, с ним ра...

Котик, я же привела пример. Возможно вам никогда не понадобится сделать что-то с Главным классом.

Егор
Ну создал один раз объект другого класса, с ним ра...

О, другой пример (не очень но). Что если войска (наследуют, проверяют) состояние главнокомандующего, и они будут биться пока главнокомандующий жив ?!

Егор- Автор вопроса
Nodiru Gaji
О, другой пример (не очень но). Что если войска (н...

Ну один раз мы получили объект класса главкома, через какой нить DI фреймворк или словарь истантсов. Далее с помощью геттера получаем и чекаем состояние главкома

Егор
Ну один раз мы получили объект класса главкома, че...

Ну Котик... (не была права насчёт setattr, думала что вы про instance.DEBUG = '') Но так не делаются метаклассы, сложные системы и архитектуры (но мысл стоящая)

Егор
Ну один раз мы получили объект класса главкома, че...

Какие DI фреймворки можете порекомендовать?

Ок, (Я только Singleton использовал разок)

Егор- Автор вопроса

Есть идеи в каких случаях нужен classmethod с гет инстансом ?

Я так форму с фильтром сделал для фласка, чтобы фильтр сохранил значение при переходе на другие страницы фильтрованных данных (но с воркерами всё ломается)

Похожие вопросы

Обсуждают сегодня

type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
А чем вам питонисты не угодили?😂
.
79
Можно ли загрузить скрипт py в бота чтобы он работал по нему? как это сделать?
huskadam #RCC Фанат? @hitlerpvp
13
Всем здравствуйте! Я хотел узнать сколько стоит средняя месячная зарплата у Electron js разработчиков? Мне очень это важно и нужно, плиз помогите узнать эту инфу! Для Джунио...
U.K.
10
А дин типизация это хорошо или плохо?
Alexey
12
Исходники плюс документация? Вы гоните)) демок хватит всем
zamtmn
11
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
77
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Hello. Could you please help me with finding all coordinates within a radius using a spatial index, given that I have a table with coordinates? SET @lng = 37.57925; SET @lat ...
Rinchin G
7
Карта сайта