![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
PyAlexey |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 19.9.2006 Где: Россия, Нижний Но вгород Репутация: 6 Всего: 7 |
Вот такие возникли у меня вопросы после прочтения краткого обсуждения рубиноидов этой статейки. А вы, уважаемые питоноводы, как считаете: ООП или не ООП, Python или Pyton?
|
|||
|
||||
albertn |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 30 Всего: 34 |
В данной статье скорее всего идет обзор языка + стандартных библиотек. Язык то сам по-себе вполне ООП, но в стандартных библиотеках в лидирующем большенстве случаев не встречаестя этот подход.
Но если бы они взглянули на исходники Zope, тогда и оценили насколько он ООП. Там есть все - Полиморфизм, Инкапсуляция и Наследование, причем в болшом объеме. |
|||
|
||||
J2A |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 17.11.2005 Где: Омск Репутация: 16 Всего: 18 |
А на что это влияет? Что называется, хоть пирожком назови, лишь в печь не клади.
--------------------
Be easy, stay cool |
|||
|
||||
ser_gen |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 25.9.2006 Репутация: 1 Всего: 1 |
Мда, а C++ и Delphi(хоть и дрянь порядочная) они в расчет уже не берут? |
|||
|
||||
PyAlexey |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 19.9.2006 Где: Россия, Нижний Но вгород Репутация: 6 Всего: 7 |
Вообще, Питон — язык разносторонний и многоликий, просто так его не впихнуть таблицу классификации. Не знаю, откуда автор стащил эту таблицу, но как-то странно видеть C++ с Java и Ruby, не говоря уж об ошибке в слове Python.
Раз пошла такая пьянка, то почему в ряду с «Perl, PHP, Pyton, ASP» нет упоминания о BAT-файлах DOS’а? |
|||
|
||||
ser_gen |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 25.9.2006 Репутация: 1 Всего: 1 |
||||
|
||||
Cr@$h |
|
|||
![]() Исследователь ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1693 Регистрация: 3.4.2005 Где: Санкт-Петербург, Россия Репутация: 1 Всего: 41 |
Первой ошибкой авторов было то, что они возводят всё в абсолют. Это надо же: язык принадлежит одной парадигме. Более того, под сценарными языками они понимают языки, реализующме чуть ли не все предыдущие парадигмы. Это же не всегда так.
В Common Lisp, Ada, Visual Prolog есть ООП. CL вообще всё практически содержит. Что его, сценарным обзывать? То же касается Fortran. Классификация на уровне середины прошлого века. Я бы лучше допускал, что язык может поддерживать несколько парадигм. Сценарность я бы вообще не относил к парадигме программирования, наеврное. для меня есть компилируемые, интерпретируемые и сценарные (последние могут быть обоими). Вот в этом смысле. Добавлено @ 22:27 Python считаю императивным языком, допускающим полоценное ООП и поддерживающим функциональный стиль программирования (на сколько я знаю, содержит много функцональных средств, но не имеет чистых процедур, оптимизации хвостовых функций и др.). Читайте и присоединяйтесь к обсуждению в отдельной теме О функциональном программировании на Python. |
|||
|
||||
umup |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 17.9.2006 Репутация: нет Всего: 1 |
А что обсуждать ? Рассуждения какой-то пупкиной, мягко говоря, далекие от реальности ?
|
|||
|
||||
Artemios |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 405 Регистрация: 14.8.2006 Где: Саратов, Россия Репутация: 18 Всего: 50 |
Гы-Гы)))
Python - сценарный язык для web-разработки))))))) Полностью поддерживаю:
-------------------- fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ] |
|||
|
||||
albertn |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 30 Всего: 34 |
||||
|
||||
PyAlexey |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 19.9.2006 Где: Россия, Нижний Но вгород Репутация: 6 Всего: 7 |
2All
Как думаете, чего не хватает в питоновском ООП? |
|||
|
||||
albertn |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 30 Всего: 34 |
||||
|
||||
PyAlexey |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 19.9.2006 Где: Россия, Нижний Но вгород Репутация: 6 Всего: 7 |
||||
|
||||
albertn |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 30 Всего: 34 |
Блин, я не это имел ввиду. Поясню для тех, кто не понял: Не противоречит ли концепции ООП данного рода использование объявления переменных объекта определенного класса? Если вопрос снова непонятен, то я еще напишу ![]() |
|||
|
||||
PyAlexey |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 19.9.2006 Где: Россия, Нижний Но вгород Репутация: 6 Всего: 7 |
Вы о переменной b? Противоречит, противоречит даже самой идеи класса. Я вообще не знал, что так объявлять можно.
|
|||
|
||||
Cr@$h |
|
|||
![]() Исследователь ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1693 Регистрация: 3.4.2005 Где: Санкт-Петербург, Россия Репутация: 1 Всего: 41 |
Про основы ООП в Python можно посмотреть и в нашем старом месте: Объектно-ориентированное программирование.
|
|||
|
||||
FunnyFalcon |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 27.3.2006 Репутация: 4 Всего: 7 |
В Питоне просто своя объектная модель: объект - это почти что HESH таблица, но ее элементы могут искаться и в "родительских" :-)
Чем проигрывает Python тому же Ruby - нет возможности легко изменять класс: возможность работы в стиле макросов в Ruby (через class_eval/module_eval и included) сильно сокращает объём кода. Я пробовал переписать pyExcelerator на Ruby - вместо объявления сотен свойств (разных типов - с десяток не больше) - два десятка строчек с их перечислениями - ощутимая выгода. И не надо про скорость - написал C расширения для ускоренного перевода строки в число и обратно, отнаследовался от String - и скорость на уровне Python-овского варианта. Жаль не довел еще до ума (не по Ruby-евски выглядит, да и названия методов неудачно выбрал - одни и те же и для перевода строки в число, и обратно) - доведу, выложу. Если бы Van Rossum отступился чуть чуть и реализовал подобную возможность - Python бы только выиграл. И не надо про метаклассы. Да, SqlObject и Django их очень удачно использует. Но метаклассы работают только при создании класса и работают они с Dictionary - т.е. порядок объявлений теряется. |
|||
|
||||
J2A |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 17.11.2005 Где: Омск Репутация: 16 Всего: 18 |
На c.l.py на инсинуацию "Ruby -- ОО, а Python -- нет" ответили примерно так:
--------------------
Be easy, stay cool |
||||
|
|||||
Cr@$h |
|
|||
![]() Исследователь ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1693 Регистрация: 3.4.2005 Где: Санкт-Петербург, Россия Репутация: 1 Всего: 41 |
Кстати сама обсуждаемая статья, похоже, написана сторонникаим Python.
|
|||
|
||||
pythonwin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 14 Всего: 36 |
||||
|
||||
Cr@$h |
|
|||
![]() Исследователь ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1693 Регистрация: 3.4.2005 Где: Санкт-Петербург, Россия Репутация: 1 Всего: 41 |
||||
|
||||
pythonwin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 14 Всего: 36 |
||||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Python: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |