Питон - модули, пакеты, классы, экземпляры. :: Бройтман Олег
Страница:
4 из 7
Вернее было бы назвать эти методы initializer и finalizer - они сами не размещают и не освобождают память (это делает за них интерпретатор), они инициализируют и очищают свои переменные.
В Питоне нет отдельного оператора new для создания экземпляров класса. Для создания экземпляра класса вызывается класс с необходимыми параметрами. Эти параметры передаются в __init__. Метод __del__, конечно, вызывается без параметров (кроме, естественно, self). Для удаления объектов (и не только экземпляров классов) в Питоне есть оператор del.
Пример.
class Foo:
bar = "baz"
def __init__(self, foo):
self.foo = foo
def __del__(self):
del self.foo
foo = Foo(12)
del foo
Описание класса создает новое пространство имен, в котором определяются статические переменные (в нашем примере это bar) и методы. Создание экземпляра порождает пространство имен объекта, доступ к которому осуществляется через переменную экземпляра класса foo, а внутри методов класса - через переменную self.
Классы в Питоне позволяют программисту создавать новые типы данных и определять для них все операции, доступные для встроенных типов. Например, метод __getitem__ позволяет индексировать объект, а __setitem__ - присваивать индексу объекта. Метод __getitem__ также позволяет объекту участвовать в цикле for, эмулируя последовательность (sequence). Есть методы, позволяющие объекту эмулировать булевские значения и участвовать в операторах if и while. Методы __getattr__ и __setattr__ позволяют читать и писать атрибуты объектов.
|< Пред. 2 3 4 5 6 След. >|