Показаны сообщения с ярлыком Полиморфизм. Показать все сообщения
Показаны сообщения с ярлыком Полиморфизм. Показать все сообщения

28 октября 2012 г.

Что то нужное в Python


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

Так как я не знаю с чего начинать, чтоб двигаться дальше, я напишу короткие фрагменты инструкций языка Python.

Полиморфизм в языке Python:
Полиморфизм – термин,который означает, что смысл операции зависит от типов обрабатываемых объектов. Поскольку Python – это язык с динамической типизацией, полиморфизм в нем проявляется повсюду. Это как бы одна из расшифровок полиморфизма...

Пример, где мы возьмем функцию, и превратим ее в универсальную утилиту нахождения пересечения:
def intersect(seq1, seq2):
    res = []                   # Изначально пустой результат
    for x in seq1:             # Обход последовательности seq1
        if x in seq2:          # Общий элемент?
            res.append(x)      # Добавить в конец
    return res

Вызов:

>>> s1 = “SPAM”
>>> s2 = “SCAM”
>>> intersect(s1, s2)  # Строки
[‘S’, ‘A’, ‘M’]


В данном примере мы передали функции две строки и получили список общих символов. Переменная res внутри функции intersect – это то, что в языке Python называется локальной переменной,  –  имя,  которое доступно только  программному код у внутри инструкции def и существует только во время  выполнения функции.


-----------------------------------------------------------------


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

>>> x = intersect([1, 2, 3], (1, 4))   # Смешивание типов
>>> x                                  # Объект с результатом
[1]


На этот раз  функции  были переданы объекты разных типов  – список и кортеж, – и это не помешало ей отыскать общие элементы.
-----------------------------------------------------------------