Копирование HTML-кода в элементе проверки Google Chrome

Всякий раз, когда вам нужно поддерживать состояние своих функций, оно не может быть выполнено с помощью генераторов (функции, которые дают, а не возврат). Генераторы сохраняют свое собственное состояние.

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

Всякий раз, когда вы используете Шаблон посетителя, вам понадобятся классы. Каждый другой шаблон проектирования может быть выполнен более эффективно и чисто с генераторами, менеджерами контекста (которые также лучше реализуются как генераторы, чем классы) и типы POD (словари, списки и кортежи и т. Д.).

Если вы хотите написать «pythonic» код, вы должны предпочитать менеджеров контекста и генераторов над классами. Это будет более чистым.

Если вы хотите расширить функциональность, вы почти всегда сможете выполнить его с помощью сдерживания, а не наследования.

Как и во всех правилах, это исключение. Если вы хотите быстро инкапсулировать функциональность (т. Е. Написать тестовый код, а не код повторного использования на уровне библиотеки), вы можете инкапсулировать состояние в классе. Это будет просто и не нужно будет повторно использовать.

Если вам нужен деструктор стиля C ++ (RIIA), вы определенно НЕ хотите использовать классы. Вы хотите, чтобы контекстные менеджеры.

30
задан surfmuggle 19 May 2014 в 13:03
поделиться