Page 45 - 6734
P. 45
поточний
else: # інакше
raise StopIteration # генерувати
StopIteration
def __getitem__(self,i): # метод повертає елемент
за індексом `i`
return self.lst[i]
c=Container([1,2,3,4,5]) # створити об'єкт контейнера
for i in c: # для кожного елемента в контейнері
print i, # вивести його
print
print c[0] # вивести перший елемент (або с.lst[0])
it=iter(c) # створити об'єкт ітератор (або так:
c.__iter__())
c.current=0 # установити поточний індекс
print it.next(),it.next(),c[3] # вивести два наступні
та четвертий
1 2 3 4 5
1
2 3 4
Менеджери контексту і інструкція with
Менеджер контексту – це об’єкт, який визначає контекст
(середовище) виконання інструкцій всередині блоку with [19, 38].
Містить методи __enter__ та __exit__, які автоматично
викликаються на початку і вкінці блоку with. Часто
використовується під час роботи з файлами. Приклад показує
створення і використання класу менеджера контексту.
with open(__file__,'r') as f: # закриє файл
автоматично
print f.read(1)
class A(object): # клас реалізує власний спосіб
44