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