Команданте ибн Кандела ([info]dervish_candela) wrote,
@ 2009-07-01 21:41:00
Previous Entry  Add to memories!  Tell a Friend  Next Entry
Entry tags:питонство, программирование

перегрузка конструкторов
каждый битый плюсами гражданин знает, что без перегрузки конструкторов нам не жить.
ну вот настала и моя очередь: я уткнулся в то, что ни в одном доке или туториале перегрузка как она понимается в С++ просто не упоминается. Ну логично, да — питону ведь плевать на типы ваших аргументов, хотим - можем хоть весь исполняемый код вместе с интерпретатором в качестве аргумента сунуть. Но что делать, если мы хотим создавать объект нашего класса из разных источников? поискал-поискал, нашел варианты с статик классметодами, банальной проверкой типа, и кучей шаманства. Совершенно ненамеренно я стал вчитываться в шаманство, и меня осенило: а ведь всё это просто... не нужно. Если наши источники разнородны, то и семантика объектов разнородна. Тогда и их интерфейсы разнородны, и мы имеем два законно разных класса =) Что в питоне, с его минимумом писанины, да ещё и в комоде, с его автодополнением скобочек и всех слов по табу, сделать ничуть не напряжнее, чем один. Гвидо опять оказался умнее :)
Я сразу увидел свет, и всё расплывалось и превращалось в атомы, и затем в байт-код, и даже небо, даже аллах и посмотрел на свой код, и понял, что отравленный ядовитыми флюидами ООП мозг пытался сунуть в один класс совершенно не относящиеся друг к другу сущности...




(6 comments) - (Post a new comment)


[info]billy_kun
2009-07-01 06:49 pm UTC (link)
Почему когда я читаю такие посты я начинаю чувствовать себя гавном еще большим, чем есть на самом деле?

(Reply to this) (Thread)


[info]dervish_candela
2009-07-01 06:51 pm UTC (link)
потому что пишет их гавно ещё большее, чем ты есть на самом деле. так задумано :)

(Reply to this) (Parent)


[info]mifnar_daegor
2009-07-01 06:59 pm UTC (link)
Просто ООП, как и любая другая философия и религия, должно применяться во благо, а не во вред, и не стоит пытаться относить к одному классу человека и стол (по количеству конечностей). Тогда и проблем с перегрузкой конструкторов возникать не будет :)

(что-то вместо того что бы выразить свою мысль я зачем-то повторил твою... *посыпает пеплом голову*)

Edited at 2009-07-01 07:02 pm UTC

(Reply to this) (Thread)


[info]dervish_candela
2009-07-01 07:06 pm UTC (link)
Да, но сознательная абстракция - не такой уж очевидный процесс :) Особенно когда для твоей задачи количество ног - единственное, что имеет значение, нужно нарпячься и увидеть, что плотник.вырезать и чувак.отрастить финально не укладываются в одну кучу: ведь ты сейчас думаешь только о ногах, их стоимости и как их приобрести. Плюс многие плюшки в олдфажских языках реализуются только с помощью впихивания всего и вся в общую иерархию, и забываешь, что теперь можно уже и без этого. когда для реализации массива с функциями не нужно камлать на две страницы, пыл писать иерархии сильно охладевает =) (не то чтобы я когда-либо их писал, конечно...)

(Reply to this) (Parent)


[info]dervish_candela
2009-07-01 07:07 pm UTC (link)
хм :) бывает. у меня так вообще всё время - хочу выразить своё, а оказывается повторяю чужое =)

(Reply to this) (Parent)

1D Inciner
(Anonymous)
2009-07-02 05:00 pm UTC (link)
Ничего не понял, но, тем не менее, проронил скупую мужскую слезу^^

(Reply to this)


(6 comments) - (Post a new comment)

Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…