Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 4, 2015 14:08:54

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Изменение состояния неизвестной переменной объекта.

MiK
Но на первый взгляд, это тоже не очень удобно
Как на ваш взгляд это было бы удобно?
И да, подобные вопросы возникают как правило из за плохой архитектуры кода



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#2 Фев. 4, 2015 14:17:29

MiK
Зарегистрирован: 2014-10-30
Сообщения: 191
Репутация: +  -1  -
Профиль   Отправить e-mail  

Изменение состояния неизвестной переменной объекта.

JOHN_16
Что плохого в том, что я не хочу писать метод на каждую переменную? Хочу, чтобы один метод мог обработать любую из тех которую выберет, предположим, другой метод или даже пользователь.

Офлайн

#3 Фев. 4, 2015 14:19:09

Alen
Зарегистрирован: 2013-08-01
Сообщения: 373
Репутация: +  49  -
Профиль   Отправить e-mail  

Изменение состояния неизвестной переменной объекта.

MiK
Ну да ладно! Для чего же тогда ООП???

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

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

Офлайн

#4 Фев. 4, 2015 14:39:55

Alen
Зарегистрирован: 2013-08-01
Сообщения: 373
Репутация: +  49  -
Профиль   Отправить e-mail  

Изменение состояния неизвестной переменной объекта.

MiK
Может есть какой-то декоратор вроде setter?

Есть.

Отредактировано Alen (Фев. 4, 2015 14:46:09)

Офлайн

#5 Фев. 4, 2015 15:04:50

MiK
Зарегистрирован: 2014-10-30
Сообщения: 191
Репутация: +  -1  -
Профиль   Отправить e-mail  

Изменение состояния неизвестной переменной объекта.

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

Офлайн

#6 Фев. 4, 2015 15:22:23

Alen
Зарегистрирован: 2013-08-01
Сообщения: 373
Репутация: +  49  -
Профиль   Отправить e-mail  

Изменение состояния неизвестной переменной объекта.

MiK
@property, насколько я знаю, позволяет читать закрытые атрибуты.

А в python закрытых и не существует, есть `хак` типа подчеркивания, который позволяет их имитировать,
поэтому смысла особого в этом нет, просто синтаксический сахарок.

Офлайн

#7 Фев. 4, 2015 15:33:54

Alen
Зарегистрирован: 2013-08-01
Сообщения: 373
Репутация: +  49  -
Профиль   Отправить e-mail  

Изменение состояния неизвестной переменной объекта.

Офлайн

#8 Фев. 4, 2015 15:38:06

MiK
Зарегистрирован: 2014-10-30
Сообщения: 191
Репутация: +  -1  -
Профиль   Отправить e-mail  

Изменение состояния неизвестной переменной объекта.

Alen
Двоичный код - без сахара.
Почитаю, спасибо, но там, возможно сложно будет. С __dict__ я понял как использовать, остальное со временем освою. Спасибо за участие

Офлайн

#9 Фев. 4, 2015 22:13:52

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Изменение состояния неизвестной переменной объекта.

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

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



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#10 Фев. 5, 2015 06:42:14

MiK
Зарегистрирован: 2014-10-30
Сообщения: 191
Репутация: +  -1  -
Профиль   Отправить e-mail  

Изменение состояния неизвестной переменной объекта.

JOHN_16
Извини, но не удержался, чтобы не пофлеймить по теме. Твои опасения оправданы, но, возможно разница тут в архитектурном подходе.

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

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

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

Если класс дорос до 1000 имён, это значит, что будет не только много имён, но и много списков, и они опять же будут принадлежать разным переменным, а это значит, что снова возникнет вопрос, который я поднял в шапке темы.

Отредактировано MiK (Фев. 5, 2015 06:42:58)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version