LINUX.ORG.RU

Перегрузка и специализация классов и функций в Python


0

0

Статья о перегрузке и специализации классов и функций в Python. Предлагается механизм, благодаря которому перегрузка и частичная специализация классов и функций в Python может быть развита не хуже чем в C++, несмотря на отсутствие строгой типизации. Особенно актуально для тех кто переходит на Python c С++;-) Использована пара оригинальных, сугубо <<питоновских>> приемов программирования.

http://alpha.sec.ru/~aiv/python/overl... - модуль.

http://alpha.sec.ru/~aiv/python/overl... - пример использования.

http://alpha.sec.ru/~aiv/python/overl... - pdf-версия.

>>> Подробности

★★★★★

Проверено: Shaman007 ()

Re: Перегрузка и специализация классов и функций в Python

автору читать http://www.artima.com/weblogs/viewpost.jsp?thread=155123 и ссылки оттуда, а модуль переписать с использованием декораторов.

anonymous ()

Re: Перегрузка и специализация классов и функций в Python

Странно, а разве в пистоне до сих пор нет generic functions?

Sun-ch ()

Re: Перегрузка и специализация классов и функций в Python

чего мне не хватает в питоне, так это protected area

anonymous ()

Re: Перегрузка и специализация классов и функций в Python

это блокировки многопоточные? так это делается самостоятельно в легкую (могу поделиться). А то у мя еще есть базовый класс который враппит объекты для совместного использования при многопоточности, это лучше чем протектед ареа... но это тема для следующей статьи:-)

ЗЫ анонимусу - за ссылки спасибо, пока токо бегло успел глянуть... декораторы меня что то не прут совершенно, да и предложенный по ссылкам вариант куда менее гибкий и красивый чем мой (!:-))), на первый взгляд... но это первые ощущения, надо подумать.

AIv ★★★★★ ()

Re: Перегрузка и специализация классов и функций в Python

Ааа... доступ по binary tree. Вызов деструктора на каждое обращение. Ужос!

Аффтар, хочу сказать тебе: "превед кросавчег" *\(..)/*

eXOR ★★★★★ ()

Re: Перегрузка и специализация классов и функций в Python

Хм... во первых не по бинари три а по хэш таблице (учите матчасть). В питоне ЛЮБОЙ вызов идет по хэш таблице, обращеним больше-обращеним меньше рояля не играет.

Во вторых деструктор вызывается только при ОПРЕДЕЛЕНИИ функции, а не при обращении к ней (внимательней читайте, плиз, всеж написано).

Последней фразы не понял - поподробнее?

AIv ★★★★★ ()

Re: Перегрузка и специализация классов и функций в Python

>Народ, а есть живой форум по Python-у по заковыристым вопросам для русскоязычной аудитории ?

Есть вот здесь http://prog.org.ru/forum/ но не очень живое, хотя народ вроде там присутствует. A так, ещё можно посмотреть на http://www.python.ru/links/ может чего найдётся.

dengol ()

Re: Перегрузка и специализация классов и функций в Python

http://www.wikiznanie.ru/ru-wz/index.php/Р&#1038;С&#8218;С&#1026;Р&a mp;#1109;Р&#1110;Р°С&#1039;_С&#8218;РёР&#1111;РёР·Р°С&#8224; РёС&#1039;?PHPSESSID=e9185bc2a71b4dba707e154acc3f3c4f

"Строгая типизация - принцип организации работы с типами данных в языке программирования.

Строгая типизация предполагает следующие ограничения:

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

Запрещено присваивание объекту одного типа значения другого типа.

Любая операция с данными требует операндов строго определённых типов. Попытка вызывать операцию с операндами других типов воспринимается как синтаксическая ошибка в программе.

Никакие преобразования типов не выполняются автоматически. Для тех преобразований, которые имеют смысл, должны использоваться специальные синтаксические конструкции. "

Если Вы считает что питон строго типизированный язык, действительно можете дальше не читать, Вам это не поможет....

AIv ★★★★★ ()

Re: Перегрузка и специализация классов и функций в Python

from http://en.wikipedia.org/wiki/Python_programming_language > Typing discipline: strong, dynamic ("duck")

http://en.wikipedia.org/wiki/Strongly_typed

ты бы ещё на народ.ру сослался. почитал хоть, что умные ребята из википедии говорят, а? хинт: статическая и строгая типизация -- разные вещи.

anonymous ()

Re: Перегрузка и специализация классов и функций в Python

Во первых я ссылку давал тож на википедию, и что то я не пойму чем твои ссылки на википедию лучше.

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

В третьих - то что питон язык НЕстроготипизированный в общем то не токо МОЕ мнение. Хотя некоторые авторы и считают его строготипизированными, но это далеко не так (сравни что ли с окамлем например...). Откуда пошло это веяние моно догадаться - питонофилы так пытаются отбиться от питонофобов, для которых отсутствие строгой и статческой типизаций один из главных контраргументов против юзания питона вообще, и в больших проектах в частности.

В четвертых и последних - терминологические споры одни из самых дурацких и неконструктивных. Лучше по делу что нить скажи, если уш за клаву взялся...

ЗЫ чем отличается статическая типизация от строгой я знаю.

AIv ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.