Page 27 - 6734
P. 27

print bin(5) # виклик функції
           [1, 0, 1]

                                      Замикання

               Замикання  (closure)  —  це  функція,  яка  визначена в  тілі  іншої
           функції і в якій є посилання на змінні, що оголошені зовні [19, 38].

           a=0 # глобальна змінна
           def func(b): # функція
               def fn(c): # внутрішня функція (замикання)
                   global a # звертання до глобальної змінної
                   a=1 # зміна значення глобальної змінної
                   print a,b,c # вивести a,b,c
               print 'func'
               return fn # повернути функцію
           f=func(2) # аргумент b=2, виведе: 'func'
           f(3) # аргумент c=3, виведе: 1 2 3
           print a # 1 - значення глобальної змінної змінилось

           func
           1 2 3
           1

                            Обробка виняткових ситуацій
               Інструкції  try  і  except  дозволяють  перехоплювати  і
           обробляти  виняткові  ситуації  –  помилки,  що  виникають  під  час
           виконання  програми  [16,  19,  37].  Якщо  помилка  виникає  в  блоці
           try, то керування передається тому блоку except, який відповідає
           типу помилки.
           import sys # імпорт модуля sys
           for x in -1, 0, "0.2", 1e1000: # повторити наступні
           команди для різних значень змінної x
               try: # перехоплювати помилки виконання
                   assert x>=0 # якщо x менше 0, генерувати
                                          26
   22   23   24   25   26   27   28   29   30   31   32