Мы поможем в написании ваших работ!
ЗНАЕТЕ ЛИ ВЫ?
|
from sets import Set as set # тип для множества
Содержание книги
- использовать константы из модуля 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
- 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). Фун
- Второе измерение,образующее вместе с первым плоскость,на которой и берется
- Индекс минимального значения в массиве по заданному
from sets import Set as set # тип для множества
class G:
def __init__(self, V, E): self.vertices = set(V) self.edges = set(E)
def add_vertex(self, v): self.vertices.add(v)
def add_edge(self, (v1, v2)): self.vertices.add(v1) self.vertices.add(v2) self.edges.add((v1, v2))
def has_edge(self, (v1, v2)): return (v1, v2) in self.edges
def __str__(self):
return "%s; %s" % (self.vertices, self.edges)
Использовать класс можно следующим образом:
g = G([1, 2, 3, 4], [(1, 2), (2, 3), (2, 4)])
print g g.add_vertex(5) g.add_edge((5,6)) print g.has_edge((1,6)) print g
что даст в результате
Set([1, 2, 3, 4]); Set([(2, 4), (1, 2), (2, 3)]) False
Set([1, 2, 3, 4, 5, 6]); Set([(2, 4), (1, 2), (5, 6), (2, 3)])
Как видно из предыдущего примера,определить класс не так уж сложно.Конструктор класса имеет специальное имя __init__. (Деструктор здесь не нужен,но он бы имел имя __del__.)Методы класса определяются в пространстве имен класса.В качестве первого формального аргумента метода принято использовать self.Кроме методов в объекте класса имеются два атрибута:vertices(вершины)и edges(ребра).Для представления объекта G в виде строки используется специальный метод __str__().
Принадлежность классу можно выяснить с помощью встроенной функции isinstance():
print isinstance(g, G)
Инкапсуляция
Обычно считается,что без инкапсуляции невозможно представить себе ООП,что это ключевое понятие.История развития методологий программирования движима борьбой со сложностью разработки программного обеспечения.Сложность больших программных систем,в создании которых участвует сразу большое количество разработчиков,уменьшается,если на верхнем уровне не видно деталей реализации нижних уровней.Собственно,процедурный подход был первым шагом на этом пути.Под инкапсуляцией(incapsulation, что можно перевести по-разному, но на нужные ассоциации хорошо наводит слово"обволакивание")понимается сокрытие информации о внутреннем устройстве объекта,при котором работа с объектом может вестись только через его общедоступный(public) интерфейс. Таким образом, другие объекты не должны вмешиваться в "дела" объекта,кроме как используя вызовы методов.
В языкеPythonинкапсуляции не придается принципиального значения:ее соблюдение зависит от дисциплинированности программиста.В других языках программирования имеются определенные градации доступности методов объекта.
|