Форум сайта python.su
o7412369815963Я не сомневаюсь в вашем опыте, но добавлю свое имхо.
Я по интуиции и опыту…
Офлайн
Ну и понаписали…
Питон, это в первую очередь объектно ориентированный язык: в питоне всё является объектами. Гвидо отказывается добавить в питон хвостовую рекурсию, чтобы меньше идиотов писали непонятный функциональный код (не путайте, кстати, с императивным).
Использовать ООП в питоне можно и нужно практически везде. Я не спорю с dartNNN'ом, я просто вижу это взаимодействие практически во всём. Ну да, в скрипте на 50 строк может оно и не надо, но если вдруг что-то большее…
Офлайн
Попробуйте для начала написать на ПАСКАЛЕ библиотеку для работы со связанными списками (б-три деревьями) …
Офлайн
Ну, а в целом (если рассуждать вне Питона) есть свои плюсы и минусы ООП:
Почему объектно-ориентированное программирование провалилось?
и там же комментарий
Офлайн
Nataа пространства имён он как делает ?
Я не могу спорить с преподом, ему видней.
Nataну когда хочешь создать какой-нибудь видоизменённый объект
как понять, что для данной проблемы функциями не ограничишься и нужно вводить классы?
Офлайн
py.user.nextЯ знаю, что питон сплошь состоит из объектов. Вопрос не в структуре самого питона, а в стиле програмирования на нем. Если нужно решить задачу, нужно ли, следуя законам жанра, вводить классы, усложняя тем самым решение задачи, когда достаточно ввести пару функций?
ты просто посмотри, как вообще сделан питон, как он работает и за счёт чего в нём всё просто
helm2004У нас был “большой проект” (в нашей группе 14 человек) и мы не использовали классы, так как их не было в программе, хотя в группе у большинства первое образование “computer science” и они уж точно знакомы с ООП, в отличие от меня.
В третьих, классы очень нужны в больших проектах, когда программируют 4 и больше программера.
Офлайн
Если нужно решить задачу, нужно ли, следуя законам жанра, вводить классы, усложняя тем самым решение задачи, когда достаточно ввести пару функций?Нет, не надо. Более того, лично я, программируя на питоне, как человек испорченный в свое время C++, как правило использую ООП. Но для реализации таких GoF шаблонов как strategy, template method и т.п. очень часто пользуюсь именно функциями. Принцип простой - “Бритва Оккама” - если для реализации функционала достаточно функции, а не объекта - использую функцию. Тем более, что метод __call__ позволяет, при необходимости сохранения состояния функтора, вместо функций использовать объекты.
For the majority of programs it is enough to use standard data types and functions. Classes in python are redundant and are not necessary, they make the code overcomplicated and verbose. This is not Java. It is more of procedural programming than object-orientedМдаа… запущенный случай. Хотя до изобретения Django этого подхода многие придерживались. Но после Django такой подход уже безнадежно устарел, ПМСМ.
Офлайн
ziroИ что же такого нового принесло с собой Django?
Мдаа… запущенный случай. Хотя до изобретения Django этого подхода многие придерживались. Но после Django такой подход уже безнадежно устарел, ПМСМ.
Офлайн
И что же такого нового принесло с собой Django?Если коротко - интенсивное использование метаклассов, и как следствие снижение объема кода, повышение его читаемости, ну на вскидку. Метаклассы и раньше использовали, естественно, но крупного и, главное, популярного проекта, в котором использование метаклассов приводило к качественному скачку при описании объектов системы, до джанги не было.
Офлайн
Nataи почему же он состоит из объектов ?
Я знаю, что питон сплошь состоит из объектов.
Nata
Если нужно решить задачу, нужно ли, следуя законам жанра, вводить классы, усложняя тем самым решение задачи, когда достаточно ввести пару функций?
Nataа как бы ты сама написала ?
А матрицы мы умножаем в NumPy
Офлайн