Посты с тэгом ооп


Зачем мне гибкость Python, если мне запрещают ей пользоваться?

Здравствуйте!
Есть Была у меня следующая задача: надо было спарсить кучу данных и организовать их в классы, а позже загрузить в БД.
Вроде бы, ничего сложного, но в этот день я даже забыл поесть, а почему — смотрите под кат, потому что я сделяль

Читать дальше →



Итерируемый объект, итератор и генератор

Привет, уважаемые читатели Хабрахабра.
В этой статье попробуем разобраться что такое итерируемый объект, итератор и генератор. Рассмотрим как они реализованы и используются. Примеры написан на Python, но итераторы и генераторы на мой взгляд фундаментальные понятия, которые были актуальны 20 лет назад и еще более актуальны сейчас, при этом за это время фактически не изменились.


Читать дальше →



Интерфейс vs interface

Одним из принципов объектно-ориентированного проектирования является программирование на уровне интерфейса, а не на уровне реализации. Видимо, из-за того что код в книгах и статьях по проектированию представлен преимущественно на Java, программисты на других языках, особенно с динамической типизацией, испытывают трудности с переносом знаний из этих книг и статей на свой рабочий язык программирования.


Часто сложность в понимании принципа "программируйте на уровне интерфейса" кроется в концентрации на инструменте, а не на смысле. Из-за наличия в Java ключевого слова interface, происходит искажение понимания принципа, и он превращается в "программируйте, используя interface". Так как в Python инструмент в виде ключевого слова interface отсутствует, некоторые питонисты пропускают этот принцип.


В книге Банды Четырех примеры приводятся на Smalltalk и C++. Оба этих языка не имеют ключевого слова interface, но эт



Изменяемые свойства классов в питоне: польза для дела и мелкого хулиганства

В питоне аттрибуты класса можно сколько угодно модифицировать во время работы, и изменения видны всем объектам этого класса и других подклассов. Под катом — одно полезное применение этого факта.

Читать дальше →


[Из песочницы] Управление доступом к атрибутам класса в питоне

В этой заметке я хотел бы привести краткое описание методов регулирования доступа к атрибутам класса в питоне с помощью декораторов и с помощью присвоения специальным образом имен атрибутам в соответсвии с хорошим стилем программирования, описанным в PEP 8 . Статья написана на основе обсуждений данной темы на StackOverflow.com, нескольких мануалов и личного опыта автора.

Занимаясь написанием программ, выполняющих научные расчеты, я перешел с c++ на питон, чтобы использовать всю мощь библиотек, к которым относятся numpy, scipy, matplotlib, pyquante и прочие, распространяющиеся под свободной лицензией и находящихся в избытке на github. Однако, на начальном этапе такого перехода у меня возник дискомфорт, связанный с отсутствием таких привычных в с++ модификаторов доступа, как privat, public



Реляционное отображение коллекций — альтернатива объектно-реляционному отображению?

Данный текст рассматривает вкратце особенности объектно-реляционного отображения (Object-Relational Mapping — ORM) и вводит новое понятие реляционного отображения коллекций (Collection-Relational Mapping — CoRM), предлагая обсудить перспективы и возможности технической реализации новой концепции долговременного хранения состояния объектов
Читать дальше →


[Из песочницы] Обучение программированию через игру или как быстро собрать весь мёд

Несколько лет назад я начал преподавать свой любимый язык python школьникам. И возникла такая задача: рассказать про объектную модель, но что бы это было не скучно и как можно нагляднее. И тут меня не сразу, но осенило — пчёлы!

Отчего пчёлы и как самому ими порулить



Генераторы vs классы

Очень маленький пост о том, что выбрать: генератор или класс, когда реализация возможна обоими способами.
Читать дальше →



Перестаньте писать классы

Хабы: Проектирование и рефакторинг, Python

Признак того, что объект не должен быть классом — то, что в нём всего 2 метода, и один из них — инициализация, __init__. Каждый раз видя это, подумайте: «эй, наверное мне нужна просто одна функция».

Каждый раз когда из написанного класса вы создаёте всего один экземпляр, используете только раз и тут же выбрасываете, следует думать: «ой, надо бы это отрефакторить! Можно сделать проще, намного проще!»

Перевод доклада Джэка Дидриха, разработчика из команды языка Питон. Доклад прозвучал 9 марта 2012 на конференции PyCon US.
Читать дальше →