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

Ребят, вопрос! Как в питоне правильнее всего делать классы, которые

можно инициализировать разным набором переменных?

Как супер-тупой пример - например сделать класс, который будет содержать в себе три переменных, у которых будет зависимость между друг другом в виде a*b=c. И чтобы я мог его инициализировать как object = class(a=3, b=2), и потом получать object.c == 6, и так далее, инициализируя его любыми двумя из трёх переменных? И чтобы при этом еще ругался когда пытаешься инициализировать его тремя переменными не соответствующими зависимости между ними. И чтобы когда меняешь одну из переменных - остальные в объекте класса тоже менялись.

У меня в голове есть пара костылей как это можно сделать, но не очень понимаю как это сделать pythonic way

8 ответов

26 просмотров

Classmethod

Тёма- Автор вопроса
Michael S2pac
Classmethod

пока не очень понимаю как это использовать

1. Разные классы 2. Разные функции создания (в том числе класс методы)

Для начала надо понять, а что внутри класса будет происходить в обоих случаях

Тёма- Автор вопроса
Tishka17
Для начала надо понять, а что внутри класса будет ...

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

99% что именно это тебе не нужно)

Тёма
ну внутри класса будут считаться все те переменные...

Звучит как будто ты в один класс запихал совершенно разную логику. Делай разные классы

Тёма
ну внутри класса будут считаться все те переменные...

Хотя бы можешь сделать отдкльно функцию, которая инициализирует класс (который принимает строго 3 переменных) Но опять же это обычнр не та гибкость, которую ты захочешь разгребать через полгода

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта