Page 43 - 6734
P. 43

else: self.__x=0 # інакше присвоїти 0
               x = property(getx, setx, None, "Property x") #
           властивість x з методами читання, запису і рядком
           документації
           a=A() # створити об'єкт класу A
           a.x=-2 # присвоїти властивості x значення
           print a.x # вивести значення властивості x

           0

                             Перевантаження операторів
               Перевантаження (перевизначення) операторів – це можливість
           зміни функціонування стандартних операторів (+ , - , ==, () та ін.)
           для  об’єктів  користувача  [19,  37,  38].  Для  цього  в  класах  цих
           об’єктів  створюються  реалізації  відповідних  методів  (__add__,
           __sub__, __eq__, __call__ та ін.)
           class A(object): # клас A
               x=0 # атрибут-дане x
               def __init__(self,x=0): # конструктор
                   self.x=x
               def __add__(self, obj): # метод перевантажує
           оператор +
                   return A(self.x+obj.x) # повертає об'єкт
           класу A
               def __eq__(self, obj): # метод перевантажує
           оператор ==
                   return self.x==obj.x # повертає значення
           логічного виразу
               def __call__(self,x=0): # метод перевантажує
           оператор ()
                   return A(x) # повертає об'єкт класу A
               def __str__(self): # метод повертає рядкове
           відображення об'єкта
                   return "%s"%self.x

                                          42
   38   39   40   41   42   43   44   45   46   47   48