Конструктор классу

В объектно-ориентированном программировании конструктором класса называют метод, который автоматически вызывается при создании объектов. Его также можно назвать конструктором объектов класса. Имя такого метода обычно регламентируется синтаксисом конкретного языка программирования. Так в 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__().

https://younglinux.info/oopython/inheritance.php