Вопросы с тегом «oop»

1190
Классы именования - Как не называть все «Менеджером <WhatEver>»? [закрыто]

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

1132
Какова цель слова «я»?

Какова цель selfслова в Python? Я понимаю, что это относится к конкретному объекту, созданному из этого класса, но я не понимаю, почему его необходимо явно добавлять в каждую функцию в качестве параметра. Для иллюстрации, в Ruby я могу сделать это: class myClass def myFunc(name) @name = name end...

1047
Заменяет ли функциональное программирование шаблоны проектирования GoF?

С тех пор как я начал изучать F # и OCaml в прошлом году, я прочитал огромное количество статей, в которых утверждается, что шаблоны проектирования (особенно в Java) - это обходные пути для отсутствующих функций в императивных языках. Одна статья, которую я нашел, довольно убедительно утверждает :...

989
В чем разница между публичным, частным и защищенным?

Когда и почему я должен использовать public, privateи protectedфункции и переменные внутри класса? В чем разница между ними? Примеры: // Public public $variable; public function doSomething() { // ... } // Private private $variable; private function doSomething() { // ... } // Protected protected...

956
Что такое миксин и почему они полезны?

В « Программировании Python » Марк Лутц упоминает «миксины». Я из C / C ++ / C # фона, и я не слышал этот термин раньше. Что такое миксин? Читая между строк этого примера (который я связал, потому что он довольно длинный), я предполагаю, что это случай использования множественного наследования для...

872
Почему setTimeout (fn, 0) иногда полезен?

Недавно я столкнулся с довольно неприятной ошибкой, когда код загружался <select>динамически через JavaScript. Этот динамически загруженный <select>имел предварительно выбранное значение. В IE6, мы уже имели код , чтобы установить выбранный <option>, потому что иногда...

865
Как перебирать два списка параллельно?

У меня есть две итерации в Python, и я хочу просмотреть их попарно: foo = (1, 2, 3) bar = (4, 5, 6) for (f, b) in some_iterator(foo, bar): print "f: ", f, "; b: ", b Это должно привести к: f: 1; b: 4 f: 2; b: 5 f: 3; b: 6 Один из способов сделать это - перебрать индексы: for i in xrange(len(foo)):...

814
Что значит «программировать на интерфейс»?

Я видел это упомянутое несколько раз, и мне не ясно, что это значит. Когда и зачем ты это делаешь? Я знаю, что делают интерфейсы, но тот факт, что я не совсем уверен в этом, заставляет меня думать, что мне не хватает их правильного использования. Это просто так, если вы должны были сделать:...

804
Как отсортировать список объектов на основе атрибута объектов?

У меня есть список объектов Python, которые я хотел бы отсортировать по атрибутам самих объектов. Список выглядит так: >>> ut [<Tag: 128>, <Tag: 2008>, <Tag: <>, <Tag: actionscript>, <Tag: addresses>, <Tag: aes>, <Tag: ajax> ...] Каждый объект...

799
Эмулировать цикл выполнения в Python?

Мне нужно эмулировать цикл do-while в программе Python. К сожалению, следующий простой код не работает: list_of_ints = [ 1, 2, 3 ] iterator = list_of_ints.__iter__() element = None while True: if element: print element try: element = iterator.next() except StopIteration: break print "done" Вместо...

796
Что __init__ и self делают на Python?

Я изучаю язык программирования Python и натолкнулся на то, что не до конца понимаю. В методе, как: def method(self, blah): def __init__(?): .... .... Что делает self? Что это значит? Это обязательно? Что делает __init__метод? Зачем это нужно? (так далее.) Я думаю, что они могут быть...

784
Функциональное программирование и объектно-ориентированное программирование [закрыто]

Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 3 года назад . До сих пор я в основном знакомился с ОО-программированием и с нетерпением...

767
Интерфейс против Базового класса

Когда я должен использовать интерфейс и когда я должен использовать базовый класс? Должен ли он всегда быть интерфейсом, если я не хочу определять базовую реализацию методов? Если у меня есть класс собак и кошек. Почему я хотел бы реализовать IPet вместо PetBase? Я могу понять наличие интерфейсов...

743
Монада на простом английском? (Для программиста ООП без фона FP)

С точки зрения того, что программист ООП понимает (без какой-либо функциональной основы программирования), что такое монада? Какую проблему он решает и какие места он использует чаще всего? РЕДАКТИРОВАТЬ: Чтобы прояснить то понимание, которое я искал, допустим, вы конвертировали приложение FP с...