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