from sets import Set as set # тип для множества 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

from sets import Set as set # тип для множества

Поиск

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инкапсуляции не придается принципиального значения:ее соблюдение зависит от дисциплинированности программиста.В других языках программирования имеются определенные градации доступности методов объекта.

 



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 54; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.007 с.)