Page 50 - 6734
P. 50

Інтроспекція
               Інтроспекція  в  Python  –  це  можливість  отримати  всю
           інформацію  про  структуру  будь-якого  об’єкта  під  час  виконання.
           Найбільш відомим засобом для інтроспекції в Python є функція dir,
           яка повертає список імен атрибутів переданого їй об’єкта. Функція
           type  або  атрибут  __class__  дозволяють  отримати  тип  об’єкта.
           Функція vars або атрибут __dict__ дозволяють отримати словник
           із  парами  атрибут:значення  об’єкта.  Функції  hasattr,  getattr  і
           setattr  дозволяють  відповідно  перевірити  наявність  у  об’єкта
           заданого  атрибута,  повернути  його  і  змінити  значення.  Функція
           issubclass дає змогу визначити чи успадковується один клас від
           іншого,  а  метод  __subclasses__  повертає  список  підкласів.
           Кортеж  базових  класів  та  їхню  ієрархію  можна  отримати  за
           допомогою атрибутів __bases__ і __mro__.
           class A(object): # успадкований від object клас A
               '''Клас A''' # рядок документації
               def __init__(self,a): # конструктор
                   self.a=a # атрибут a
               def f(self): # метод f
                   '''Повертає self.a''' # рядок документації
                   return self.a
           class B(A): # успадкований від A клас B
               '''Клас B''' # рядок документації
               def __init__(self,a,b): # конструктор
                   super(B, self).__init__(a) # виклик
           конструктора базового класу
                   self.b=b # атрибут b
               def f(self): # метод f
                   '''Повертає суму self.a+self.b''' # рядок
           документації
                   return self.a+self.b

           obj=B(0,2) # створення об'єкта класу B, виклик
           конструктора
                                          49
   45   46   47   48   49   50   51   52   53   54   55