Page 47 - 6734
P. 47

print self.a # вивести значення атрибута `a`
           Class1 = cls_factory(1,method1) # створити клас
           Class1
           obj1 = Class1() # створити об'єкт obj1
           obj1.method1() # викликати метод method1

           #створити клас за допомогою метакласу type
           Class2 = type('Class2', (object,), {'a':2,'method1':
           method1})
           obj2=Class2() # створити об'єкт obj2
           obj2.method1() # викликати метод method1

           class My_Type(type): # створити метаклас, який
           успадковує type
               def __new__(cls, name, bases, dict): # метод
           створення класу
                   return type.__new__(cls, name, bases, dict) #
           виклик __new__ базового класу
               def __init__(cls, name, bases, dict): # метод
           ініціалізації класу
                   return type.__init__(cls, name, bases, dict)
           # виклик __init__ базового класу
           # створити клас за допомогою метакласу
           Class3 = My_Type('Class3', (object,),
           {'a':3,'method1': method1})
           obj3=Class3() # створити об'єкт obj3
           obj3.method1() # викликати метод method1
           1
           2
           3







                                          46
   42   43   44   45   46   47   48   49   50   51   52