Быстрый в изучении - мощный в программировании
Скрипт ИНВЕСТОР на Python

Попробуйте себя в качестве инвестора имея в помощники мощный алгоритм советника на Python...

Все уроки по PyQt5

PyQt5 реализован как комплект Python-модулей. Он включает в себя около 620 классов и 6000 функций и методов...

Скрипт отправки SMS через Python

Была задача отправить SMS-ки большому списку номеров телефона с уточнением цены за всю рассылку "До" ее отправки...

Объектно-ориентированное программирование. Методы __init__() и __del__() в Python

24 августа 2013 г. Archy Просмотров: 7978 RSS 1
ООП на Python , , ,

__init__() и __del__() в Python

При создании экземпляра класса интерпретатор автоматически вызывает метод инициализации __init__(). В некоторых языках программирования данные методы принято называть конструктором и деструктором класса. В языке программирования PHP это будет __construct(); __destruct(). Формат метода:

def __init__(self[, <Значение1>[, <ЗначениеN>]]):
    <Выражение>
С помощью метода __init__() можно присвоить значения по умолчанию для атрибутах класса. При создании экземпляра класса начальные значения указываются после имени класса в круглых скобках:

<Экземпляр класса> = <Имя класса>(<Значение1>[, ..., <ЗначениеN>])
Пример использования метода __init__() приведен ниже:

# -*- coding: utf-8 -*-
class HexColor:
    def __init__(self):
        self.colors = {
            'red'   :   '#ff0000',
            'greed' :   '#7cfc00',
            'blue'  :   '#4169e1'
        }
 
hex_color = HexColor()
print hex_color.colors['red']   # Получим: #ff0000
 
 
# Пример 2: Удваиваем число
class DoubleMe:
    def __init__(self, number):
        self.result = number * 2
 
Double = DoubleMe(2)
print Double.result             # Получим 4

Если конструктор вызывается при создании объекта, то перед уничтожением объекта автоматически вызывается метод, называемый деструктором т.е. "уничтожитель". В языке программирования Python деструктор реализуется в виде предопределенного метода __del__(). Следует заметить, что метод не будет вызван, если на экземпляр класса существует хотя бы одна ссылка. Кроме того, т.к. интерпретатор самостоятельно заботится об удалении объектов, использование деструктора в языке программирования Python не имеет особого смысла.

Применение метода __del__()

class Class1:
    def __init__(self): # Конструктор класса
        print "Вызван метод __init__()"
    def __del__(self):  # Деструктор класса
        print "Вызван метод __del__()"
c1 = Class1()          # Выведет: Вызван метод __init__()
del c1                 # Выведет: Вызван метод __del__()
c2 = Class1()          # Выведет: Вызван метод __init__()
c3 = c2                # Создаем ссылку на экземпляр класса
del c2                 # Ничего не выведет, т.к. существует ссылка
del c3                 # Выведет: Вызван метод __del__()

Объектно-ориентированный поход поможет вам быстрее понять принципы более сложного программирования не только на языке Python, но так же и на Java, C++. Если хорошо знать один язык программирования то любой другой язык будет в изучении более легким чем новичку. По сравнению с Python, Java является полностью объектно-ориентированным языком на нем можно заняться разработкой приложений на ios и в дальнейшем продавать их в AppStore. Программирование очень увлекательный мир, это искусство создавать что то новое.

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru yandex.ru
Комментариев: 1
  1. Сергей | 2016-04-27 в 10:09:53

    Спасибо за материал. Очень качественный, советую всем читателям.

    Администратор, ты самый лучший. Так держать!

Оставьте комментарий!

Используйте нормальные имена.

Имя и сайт используются только при регистрации

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

(обязательно)