Конструктор классу
В объектно-ориентированном программировании конструктором класса называют метод, который автоматически вызывается при создании объектов. Его также можно назвать конструктором объектов класса. Имя такого метода обычно регламентируется синтаксисом конкретного языка программирования. Так в Java имя конструктора класса совпадает с именем самого класса. В Python же роль конструктора играет метод __init__().
В Python наличие пар знаков подчеркивания спереди и сзади в имени метода говорит о том, что он принадлежит к группе методов перегрузки операторов. Если подобные методы определены в классе, то объекты могут участвовать в таких операциях как сложение, вычитание, вызываться как функции и др.
При этом методы перегрузки операторов не надо вызывать по имени. Вызовом для них является сам факт участия объекта в определенной операции. В случае конструктора класса – это операция создания объекта. Так как объект создается в момент вызова класса по имени, то в этот момент вызывается метод __init__(), если он определен в классе.
Необходимость конструкторов связана с тем, что нередко объекты должны иметь собственные свойства сразу. Пусть имеется класс Person, объекты которого обязательно должны иметь имя и фамилию. Если класс будет описан подобным образом
class Person:
def __init__(self, n, s):
self.name = n
self.surname = s
p1 = Person("Sam", "Baker")
p2=Person(input('name'),input('surname'))
print(p1.name, p1.surname)
print(p2.name, p2.surname)
class nn:
def __init__(self, a, b):
self.dl = a
self.shir = b
p1 = nn(1, 2)
p2=nn(int(input('dl')),int(input('shir')))#Знайдемо площу прямокутника
print(p1.dl*p1.shir)
print(p2.dl*p2.shir)
class nn:
def __init__(self, a, b):
self.dl = a
self.shir = b
self.f1()
def f1(self):
s=(self.dl*self.shir)
print(s)
p1 = nn(1, 2)
p2=nn(int(input('dl')),int(input('shir')))
class nn:
def __init__(self, a,b,c):
self.dl = a
self.shir = b
self.visota=c
self.f1()
def f1(self):
v=(self.dl*self.shir*self.visota)#об'єм парале.
print(v)
a,n,m=(map(int,input().split()))
p2=nn(a,n,m)
Практическая работа. Конструктор и деструктор
Помимо конструктора объектов в языках программирования есть обратный ему метод – деструктор. Он вызывается, когда объект не создается, а уничтожается.
В языке программирования Python объект уничтожается, когда исчезают все связанные с ним переменные или им присваивается другое значение, в результате чего связь со старым объектом теряется. Удалить переменную можно с помощью команды языка del.
В классах Python функцию деструктора выполняет метод __del__().