Page 44 - 6734
P. 44
a=A(2); b=A(2) # створити об'єкти a і b класу A
c=a+b # виклик перевантаженого оператора +
print type(c) # тип об'єкта c
print a==b # виклик перевантаженого оператора ==
print a(3)+b(2) # виклик перевантажених операторів ()
і +
print c # виклик методу __str__
<class '__main__.A'>
True
5
4
Контейнери
Контейнер – це структура даних, яка зберігає інші об’єкти в
організованому вигляді [19]. Як правило клас контейнера містить
методи __iter__, next, __getitem__. Приклад показує створення
класу контейнера Container і його використання. Див. також
модуль collections.
class Container(object): # клас контейнера,
успадкований від object
def __init__(self,lst): # конструктор
self.lst=lst # атрибут-дане список
self.current=-1 # поточний індекс
def __iter__(self): # метод повертає ітератор
return self
def next(self): # повертає наступний елемент
контейнера
# якщо індекс наступного елемента менший
довжини контейнера
if self.current+1<len(self.lst):
self.current=self.current+1 # збільшити
індекс поточного
return self.lst[self.current] # повернути
43