Мы поможем в написании ваших работ!
ЗНАЕТЕ ЛИ ВЫ?
|
print ad.a, ad.b, ad.c ad.d = 512
Содержание книги
- Эта категория модулей имеет применение только для конкретных операционных систем и семейств операционных систем.Довольно большое число модулей в стандартной поставке
- Поддержка Internet. Форматы данных
- Лекция#3:Элементы функционального
- Функциональная программа. Функция: определение и вызов
- Лучше всего рассмотреть синтаксис определения функции на нескольких примерах.После
- args - список аргументов в порядке их указания при вызове return max(args), min(args)
- def mylist(val, lst=[]): lst.append(val) return lst
- Функции как параметры и результат
- gt;>> print range(1, 10)
- Частный случай применения map()-использование None в качестве первого аргумента.В
- return reduce(lambda x, y: x + y, lst, start)
- Итераторы можно применять вместо последовательности в операторе for. Более того,внутренне оператор for запрашивает от последовательности ее итератор. Объект
- def forit(mystate=[]): if len(mystate) < 3: mystate.append(" ")
- Функции itertools.imap(), itertools.starmap() и itertools.ifilter()
- lst = map(lambda x: math.sin(x*.4), range(30))
- quot;""Итератор последовательности Фибоначчи до N"""
- for line in (l.replace("- ", " - ") for l in open("input.dat")): print line
- print subtract(3, 2) subtract_from_3 = curry(subtract, 3) print subtract_from_3(2)
- Все данные в нем представляются объектами.
- С точки зрения объектно-ориентированного подхода,объект-это нечто,обладающее
- Интерпретатор языкаPythonвсегда может сказать,к какому типу относится объект.Однако
- Пока что вpythonесть"классические"и"новые"классы. Первые классы определяются сами по себе,а вторые обязательно ведут свою родословную от класса object. Для целей
- from sets import Set as set # тип для множества
- def getx(self): return self.__x
- Этот метод вызывается при присваивании значения некоторому атрибуту.В отличие от __getattr__(),метод всегда вызывается,а
- print ad.a, ad.b, ad.c ad.d = 512
- print get_last([1, 2, 3]) print get_last("abcd")
- gt;>> class A(object): pass
- class ABC: a = ma b = mb c = mc
- В случае,когда надклассы имеют одинаковые методы,использование того или иного метода определяется порядком разрешения методов(method resolution order). Для
- quot;""Поместить элемент на стек"""
- def __init__(self, lst, n): self.n = n
- gt;>> s = MyClass() # создается экземпляр класса
- children = [cls.convert(child) for child in val] return cls(val.node, children)
- convert = classmethod(convert)
- def my_method(self): print "self:", self
- from Multimethod import Method, Generic, AmbiguousMethodError
- Должен возвращать кортеж из аргументов,который будет
- Лекция#5:Численные алгоритмы.Матричные
- Для создания массива можно использовать функцию array() с указанием содержимого массива(в виде вложенных списков)и типа. Функция array() делает копию,если ее
- Объекты-массивы Numeric используют расширенный синтаксис выделения среза.Следующие примеры иллюстрируют различные варианты записи срезов.Функция
- каждый третий элемент строки 1
- Наименьшее(наибольшее)целое,большее(меньшее)или
- gt;>> add.accumulate([1, 2, 3, 4])
- add.reduce(a, axis). cumsum(a, axis). add.accumulate(a, axis). product(a, axis). multiply.reduce(a, axis). cumproduct(a, axis). multiply.accumulate(a, axis). alltrue(a, axis). logical_and.reduce(a, axis). sometrue(a, axis). logical_or.reduce(a, axis). Фун
- Второе измерение,образующее вместе с первым плоскость,на которой и берется
- Индекс минимального значения в массиве по заданному
- Суммирование с промежуточными результатами
- Возвращает индексы ненулевых элементов одномерного массива
- Выбор частей массива a на основе индексов indices по измерению axis
raise AttributeError
def __setattr__(self, name, value): if name[0] != '_':
self._selfdict[name] = value else:
raise AttributeError
def __delattr__(self, name):
if name[0] != '_' and self._selfdict.has_key(name): del self._selfdict[name]
ad = AttDict({'a': 1, 'b': 10, 'c': '123'})
print ad.a, ad.b, ad.c ad.d = 512
print ad.d
Сокрытие данных
Подчеркивание("_")в начале имени атрибута указывает на то,что он не входит в
общедоступный интерфейс.Обычно применяется одиночное подчеркивание,которое в языке не играет особой роли,но как бы говорит программисту: "этот метод только для внутреннего использования".Двойное подчеркивание работает как указание на то,что атрибут-приватный.При этом атрибут все же доступен,но уже под другим именем,что и иллюстрируется ниже:
>>> class X:
... x = 0
... _x = 0
... __x = 0
...
>>> dir(X)
['_X__x', '__doc__', '__module__', '_x', 'x']
Полиморфизм
В переводе с греческого полиморфизм означает"многоформие".Так в информатике называют возможность использования одного имени для выполнения различных действий.
Можно встретить множество определений полиморфизма(также есть несколько видов полиморфизма)в зависимости от языка программирования.Как правило,в качестве примера проявления полиморфизма приводят переопределение методов в подклассах.При этом можно создать функцию,требующую формального аргумента-экземпляра базового класса,а в качестве фактического аргумента давать экземпляр подкласса.Функция будет вызывать метод объекта с именем,а за именем будут скрываться различные действия.В связи с этим полиморфизм обычно связывают с иерархией наследования.
ВPythonполиморфизм связан не с наследованием,а с набором и смыслом доступных методов в экземпляре класса.Ниже будет показано,что,имея определенные методы,можно воссоздать класс для строки или любого другого встроенного типа.Для этого необходимо определить свойственный типу набор методов.Конечно,нужный набор методов можно получить и с помощью наследования,но вPythonэто не только не обязательно,но иногда и противоречит здравому смыслу.
При написании функции вPythonобычно не проверяется,к какому типу(классу)относится тот или иной аргумент:некоторые методы просто применяются к переданному объекту.Тем самым функции получаются максимально обобщенными:они не требуют от объектов-параметров большего,чем наличие методов с определенным именем,набором аргументов и семантикой.
Следующий пример показывает полиморфизм в том виде,в котором он свойствененPython:
def get_last(x): return x[-1]
|