Питон - модули, пакеты, классы, экземпляры.   ::   Бройтман Олег

Страница: 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 След. >|

Java книги

Контакты: [email protected]