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
   39   40   41   42   43   44   45   46   47   48   49