Здравствуйте, Temoto, Вы писали:
T>Ваши аргументы работают в случае предвзятого предположения, что на уровне класса несколько коротких объявлений, а в __init__ почему-то два экрана разных веток.
Оно не предвзято. На уровне класса может быть хоть сотня коротких объявлений ("несколько" — это Вы домысливаете), но все они внятные и действительно короткие (чтобы присвоить переменной значение True или None, не надо много рисовать). А вот в __init__ уже код, который делает что-то, не обязательно тривиальное, и этот код надо исследовать, чтобы понять, какие поля в каком случае есть, а каких нет (и какие просто пропущены по ещё не всплывшей ошибке). Пол-экрана, два или сотня — уже менее существенно, главное именно то, что туда в init надо явно лезть.
T> И нет ничего страшного в этой предвзятости, это понятно, потому что вы (зачем-то, вот это мне непонятно) пытаетесь доказать, что использовать аттрибуты классов "лучше". А вот что не нормально, так это то, что вы не рассматриваете противоположный вариант, когда у класса аттрибутов нет, а в __init__ несколько коротких объявлений. Справедливость в споре должна быть или нет?
Справедливость должна быть, и она говорит, что по моему варианту получается единообразное пригодное для всех случаев правило, а по Вашему — только частный случай для простого класса и сверхлёгкой инициализации. Разумеется, Ваш вариант тоже работает, но я против него ровно по тем же причинам, по которым вообще придумывают какие-то общие стили программирования и кодирования.
T>Пожалуйста, обратите внимание, что после расстановки аргументов за и против, я не делал никаких категоричных выводов, что лучше, что хуже.
Вы сделали категоричный вывод раньше, определив свои "три простых правила" в начале треда, не указав никаких граничных условий на их применение и установив временем действия целый год. Вся остальная наша дискуссия прошла под светом именно этих категорических императивов с Вашей стороны.
T> Наоборот, это было своего рода предложение тихо остановиться. До тех пор, пока программа работает как надо все варианты хороши. Уверен, что мы с лёгкостью прочитаем код друг друга, потому что понимаем как всё работает и не творим откровенный беспредел. Также, я уверен, что вы внезапно не перестанете писать аттрибуты классам, а я не начну. Так к чему этот спор?
К тому, что совет был дан не мне и не себе, а человеку, который явно обозначил себя новичком в данной области и для него этот совет может оказаться, jIMHO, резко обструктивным.
T>> И нет ничего страшного в этой предвзятости, это понятно, потому что вы (зачем-то, вот это мне непонятно) пытаетесь доказать, что использовать аттрибуты классов "лучше". А вот что не нормально, так это то, что вы не рассматриваете противоположный вариант, когда у класса аттрибутов нет, а в __init__ несколько коротких объявлений. Справедливость в споре должна быть или нет?
N>Справедливость должна быть, и она говорит, что по моему варианту получается единообразное пригодное для всех случаев правило, а по Вашему — только частный случай для простого класса и сверхлёгкой инициализации. Разумеется, Ваш вариант тоже работает, но я против него ровно по тем же причинам, по которым вообще придумывают какие-то общие стили программирования и кодирования.
Ну так и в __init__ можно писать короткие, понятные объявления. И можно называть это стилем и придерживаться его. Оба варианта никак официально не регламентированы.
T>> Наоборот, это было своего рода предложение тихо остановиться. До тех пор, пока программа работает как надо все варианты хороши. Уверен, что мы с лёгкостью прочитаем код друг друга, потому что понимаем как всё работает и не творим откровенный беспредел. Также, я уверен, что вы внезапно не перестанете писать аттрибуты классам, а я не начну. Так к чему этот спор?
N>К тому, что совет был дан не мне и не себе, а человеку, который явно обозначил себя новичком в данной области и для него этот совет может оказаться, jIMHO, резко обструктивным.
А я считаю, что именно новичку и не следует использовать аттрибуты класса, чтобы не нарваться на ещё непонятные проблемы. То есть у нас обоих есть противоположные субъективные мнения по этому поводу. Топикстартер, как вы указали, может самостоятельно выбрать дельный совет. Учитывая это, всё же не вижу цели спора.