Мы поможем в написании ваших работ!
ЗНАЕТЕ ЛИ ВЫ?
|
Итераторы можно применять вместо последовательности в операторе for. Более того,внутренне оператор for запрашивает от последовательности ее итератор. Объект
Содержание книги
- Функции для работы с атрибутами
- Выход из программы. Можно передать числовой код
- наименьшее целое,большее или равное x
- Размешивает элементы изменчивой последовательности s на
- locale.setlocale(locale.LC_ALL, None)
- quot;""Модуль для вычисления простых чисел от 2 до N """
- gt;>> profile.run("Sieve.primes(100000)")
- file: test_Sieve.py import Sieve, sets import unittest
- Sieve - Модуль для вычисления простых чисел от 2 до N
- Взаимодействие с операционной системой
- chmod(path, mode) Устанавливает режим доступа к path в значение mode.Режим доступа
- использовать константы из модуля stat,например stat.ST_MTIME
- Модуль tempfile. Import tempfile. F = tempfile. Temporaryfile(). F. Write("0"*100) # записывается сто символов 0 F. Seek(0) # уст. Указатель на начало файла. Print len(f. Read()) # читается до конца файла и вычисляется длина. Обработка текстов.
- mydata = ("abc", 12, [1, 2, 3]) output_file = open("mydata.dat", "w") p = pickle.Pickler(output_file) p.dump(mydata)
- Эта категория модулей имеет применение только для конкретных операционных систем и семейств операционных систем.Довольно большое число модулей в стандартной поставке
- Поддержка 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
Итераторы можно применять вместо последовательности в операторе for.Более того,внутренне оператор for запрашивает от последовательности ее итератор.Объект
файлового типа тоже(построчный)итератор,что позволяет обрабатывать большие файлы,не считывая их целиком в память.
Там,где требуется итератор,можно использовать последовательность.
Работа с итераторами рассматривается в разделе,посвященном функциональному программированию,так как итераторами удобно манипулировать именно в функциональном стиле.
Использовать итератор можно и"вручную".Любой объект,поддерживающий интерфейс итератора,имеет метод next(),который при каждом вызове выдает очередное значение
итератора.Если больше значений нет,возбуждается исключение StopIteration.Для
получения итератора по некоторому объекту необходимо прежде применить к этому объекту функцию iter()(цикл for делает этоавтоматически).
ВPythonимеется модуль itertools,который содержит набор функций,комбинируя
которые,можно составлять достаточно сложные схемы обработки данных с помощью итераторов.Далее рассматриваются некоторые функции этого модуля.
Функция iter()
Эта функция имеет два варианта использования.В первом она принимает всего один аргумент,который должен"уметь"предоставлять свой итератор.Во втором один из аргументов-функция без аргументов,другой-стоповое значение.Итератор вызывает указанную функцию до тех пор,пока та не возвратит стоповое значение.Второй вариант встречается много реже первого и обычно внутри метода класса,так как сложно порождать значения"на пустом месте":
|