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