Найти - Пользователи
Полная версия: Изменение состояния неизвестной переменной объекта.
Начало » Python для новичков » Изменение состояния неизвестной переменной объекта.
1 2 3 4 5 6 7
JOHN_16
MiK
Но на первый взгляд, это тоже не очень удобно
Как на ваш взгляд это было бы удобно?
И да, подобные вопросы возникают как правило из за плохой архитектуры кода
MiK
JOHN_16
Что плохого в том, что я не хочу писать метод на каждую переменную? Хочу, чтобы один метод мог обработать любую из тех которую выберет, предположим, другой метод или даже пользователь.
Alen
MiK
Ну да ладно! Для чего же тогда ООП???

ООП подразумевает работу с объектами, мы их классифицируем, т.е. причисляем их к какому-то классу, описываем их свойства(аттрибуты) и возможные их действия(методы). Мы можем наследовать и переопределять их свойства и методы описывая другие классы, и построить иерархическую классифицированную систему определенной области данных. Мы можем даже нарисовать диаграмму классов в UML, распечатать, повесить на стену и медитировать.

А вы хотите во всё это красиво выстроенное параллельно-перпендикулярное разбавить тонной анархического беспорядка.
Alen
MiK
Может есть какой-то декоратор вроде setter?

Есть.
MiK
Alen
@property, насколько я знаю, позволяет читать закрытые атрибуты. Как ты предлагаешь его использовать в данном случае?
Alen
MiK
@property, насколько я знаю, позволяет читать закрытые атрибуты.

А в python закрытых и не существует, есть `хак` типа подчеркивания, который позволяет их имитировать,
поэтому смысла особого в этом нет, просто синтаксический сахарок.
MiK
Alen
Двоичный код - без сахара.
Почитаю, спасибо, но там, возможно сложно будет. С __dict__ я понял как использовать, остальное со временем освою. Спасибо за участие
JOHN_16
MiK
ну так и не пишите? проблема то не в этом. Проблема в том что по вашему мнению это нормально если у экземпляра класса будет какой то набор из N неизвестных атрибутов. А теперь применим хороший тон программирования и спросим - а что если проект разрастется и N будет не 5, а 10, 100 , 1000 ? Клево иметь класс с 1000 атрибутов? Может быть стоит сделать 1 атрибут который будет в виде списка или словаря или тп который будет содержать в себе нужные вам объекты и 1 метод который будет проходить по этой последовательности объектов и в зависимости от каких то условиях их обрабатывать ?

P.S. если это ваш проект - НИКТО не запретит вам писать говно код и пополнить ряды говнокодеров. Если это работа, где есть начальство, ну я бы за такое назначил серьезную беседу с целью понять нужен ли мне будет такой человек.
MiK
JOHN_16
Извини, но не удержался, чтобы не пофлеймить по теме. Твои опасения оправданы, но, возможно разница тут в архитектурном подходе.

Клево иметь класс с 1000 атрибутов? Может быть стоит сделать 1 атрибут который будет в виде списка или словаря или тп который будет содержать в себе нужные вам объекты

Я плохо знаю питон, и, пожалуй, даже программирование, но я неплохо знаю жизнь и то как устроено мышление.

Хорошие имена - это хорошо. Если хороших имён много - это тоже хорошо. А вот если и запихивать имена в списки, то делать это нужно тематически, а не ради того, чтобы их можно было обрабатывать одной функцией. И это важно, потому как иначе нарушаются принципы ООП.

Если класс дорос до 1000 имён, это значит, что будет не только много имён, но и много списков, и они опять же будут принадлежать разным переменным, а это значит, что снова возникнет вопрос, который я поднял в шапке темы.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB